JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。
JMeter的基本原理是模拟多用户并发访问应用程序,通过发送HTTP请求或其他协议请求,并测量响应时间、吞吐量、并发用户数、错误率和性能指标等,以评估应用程序的性能和稳定性。
1)支持多种协议
支持HTTP、HTTPS、FTP、TCP、JDBC和JMS等协议,可以模拟多种网络环境和应用程序场景。
2)支持多种测试类型
支持负载测试、压力测试、功能测试、基准测试和分布式测试等多种测试类型,适用于不同的性能测试需求。
3)支持多种测试场景
支持多种测试场景,包括并发用户数、持续时间、循环次数和延迟时间等,可以模拟真实的使用场景。
4)支持多种测试结果收集和显示方式
支持多种测试结果收集和显示方式,包括聚合报告、图形结果、树形结果和控制台输出等,便于性能分析和优化。
5)支持插件和扩展
JMeter支持插件和扩展,可以扩展其功能和性能,以满足特定的性能测试需求。
1)测试计划(Test Plan)
测试计划是JMeter中的最高层次,包括多个线程组、配置元件和监听器等。测试计划用于设置全局的测试参数,包括测试名称、工作目录、线程数和持续时间等。
2)线程组(Thread Group)
线程组是JMeter中用于模拟并发用户访问应用程序组件,包括一组线程(用户)和一组控制器(逻辑控制)。线程组用于设置线程数、循环次数、持续时间和延迟等参数,控制器用于设置线程(用户)的请求和响应的逻辑控制。
3)HTTP请求(HTTP Request)
HTTP请求是JMeter中模拟客户端向服务器发送HTTP请求的组件。HTTP请求包括请求的URL、协议、方法、参数、头部和Body等,可以模拟GET、POST、PUT、DELETE等HTTP请求方法,以测试应用程序的响应速度和性能。在HTTP请求中,可以设置请求的参数、响应的断言和监听器等,以收集和显示测试结果。
4)控制器(Controller)
用于控制测试计划和线程组的执行流程,包括简单控制器、随机控制器、循环控制器和条件控制器等。
5)监听器(Listener)
监听器是JMeter中收集和显示测试结果的组件,包括聚合报告监听器、图形结果监听器、树形结果监听器和控制台输出监听器等。监听器用于监控测试结果,以评估应用程序的性能和稳定性,并生成报告。
6)断言(Assertion)
断言是JMeter中验证HTTP响应的状态码、内容和格式的组件,包括响应码断言、响应内容断言和响应时间断言等。断言用于验证HTTP响应的正确性和完整性,以确保应用程序的功能和性能。
7)配置元件(Config Element)
用于配置测试计划和线程组的属性和参数,包括HTTP请求默认值、CSV数据文件配置和用户定义的变量等。
8)启动器(Timer)
用于在发送HTTP请求前或线程开始前等待一段时间,以模拟用户的行为。启动器用于设置线程组的执行前等待时间,以模拟真实的使用场景。
9)前置处理器(Pre-Processor)
用于在发送HTTP请求前进行处理,包括用户参数、CSV数据集和HTTP Cookie等。
10) 后置处理器(Post-Processor)
用于在接收HTTP响应后进行处理,包括正则表达式提取器和XPath提取器等。
重点:
很多企业当中这个东西也挺需要的,一般都是使用postman来测试接口,但是我们使用的是JMeter
首先看下面的官网Apache JMeter - Apache JMeter™
下载地址以及下载方式如下图
liunx启动的方式是.sh结尾的方式,但是我的是window实现效果所以按照下面的方式来启动
windows启动方法
修改配置默认为英文的我们改成中文
在bin文件夹下面有一个jmeter. properties文件在里面找到language将英文改成中文zh_cn
双击启动后等一会就会出现客户端的页面,可以自由设置自己的背景图以及主题
1)工具栏:包含了常用的功能按钮,例如开始、停止、保存和导入等。例如,我们可以使用工具栏上的按钮开始和停止测试,以便进行测试和观察测试结果。
2)树形结构:用于组织测试计划的各个组件,包括测试计划、线程组、控制器、监听器和配置元件等。
3)属性窗口/面板:用于显示和编辑选定组件的属性,例如线程数、延迟和协议等。
JMeter的配置文件用于存储各种配置选项和全局变量,包括以下几个主要文件:
1)jmeter.properties:包含了JMeter的全局配置选项,例如默认编码、连接超时和代理服务器等。
2)user.properties:包含了用户自定义的全局变量和配置选项,例如用户定义的变量和自定义的插件等。
3)saveservice.properties:JMeter的结果保存配置文件,包含JMeter测试结果的保存格式、编码、压缩、分隔符等配置参数。
接下来就是点击Ctrl + S也就是保存操作,这个时候就会弹出一个框里面就是要你选择保存的位置,可以新建和选择文件夹这里我就在安装包的位置新建一个文件夹JmeterProduct工作区,后面保存的都可以放在这个文件夹里
Jmeter的文件其实是一个xml。
右击新建 - 》 添加- 》 线程用户- 》 线程组
线程组中可以模拟高并发场景下一个接口的测试情况
前面设置完毕之后配置这个接口的信息
增加请求头,按照一个接口的的信息来配置,因为这是一个登录接口我们需要配置一下名称和值这样就接口就可以获取到json格式的数据,以及post的请求方式,等点击保存之后保存在前面创建的文件夹中直接save就好了。
接下来就是配置信息主体的参数了
注意:消息题数据里面必须是标准的json,key必须带引号,最后一个key后面不能有逗号
当我们启动这个测试接口之后查看idea后台会发现登录成功了,并且生成了token,启动方式就是点击这个会员登录,然后点击上面的绿色三角形就好了
注意: 这样每次都要查看idea后台那还不如直接使用idea自带的接口测试呢
所以我们再来配置一下如何在jmeter里面显示后台的返回结果
右击添加-》监听器 -》查看结果树, 然后再执行这个接口查看返回结果
注意: Jmeter的消息题也就是传格式的时候必须按照标准的json格式来传参数
我发起10个线程来循环发1个请求 来执行这个接口来模拟看看什么效果,在线程组中配置一下就好了很简单重要的是效果
效果就是上面的情况返回了10个请求的响应数据来测试。
以上就是JMeter的使用。