JMeter教程
Apache JMeter是Apache组织开发的基于Java的 压力测试工具 。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境。
基础介绍
一、下载
下载地址:http://jmeter.apache.org/download_jmeter.cgi
二、安装
将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为:
G:\NIIT_2019\SECOND\课件\Junit
。
三、运行
点击bin目录下的jmeter.bat即可启动Jmeter。(注意直接双击jmeter.bat无法启动时需要使用Window+R,输入cmd,然后进入bin目录如下)。
启动之后会有两个窗口,一个cmd窗口,一个JMeter的 GUI。
上面的意思就是:不要使用GUI运行压力测试,GUI仅用于压力测试的创建和调试;执行压力测试请不要使用GUI。使用下面的命令来执行测试:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
四、汉化
打开apache-jmeter-5.4.1\bin\jmeter.properties 文件
修改第三十九行,去掉前面的#,
改为language=zh_CN
重新打开就是中文界面了
五、创建测试
1.创建线程组
1.在“测试计划”上右键 【添加】-->【Threads(Users)】-->【线程组】
2.设置线程数和循环次数。我这里设置线程数为100,循环一次。
3.创建Http请求
在“线程组”右键 【添加-】->【samlper】-->【HTTP 请求】
4.添加察看结果树和聚合报告
在我们刚刚创建的线程组上右键 【添加】-->【监听器】-->【察看结果树】。添加聚合报告,右键 【添加】-->【监听器】-->【聚合报告】。
直接添加,然后点击运行按钮就可以看到结果了。
结果树分析 :
通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。
Thread Name(线程组名称): 线程组 1-75
Sample Start( 启动开始时间): 2021-05-15 10:11:03 CST
Load time(加载时长): 2139
Connect Time:(连接时长) 2027
Latency(等待时长): 2136
Size in bytes(发送的数据总大小): 2559
Sent bytes(发送的字节):117
Headers size in bytes(发送数据的其余部分大小): 116
Body size in bytes: 2443
Sample Count(发送统计): 1
Error Count(错误统计): 0
Data type ("text"|"bin"|""): text
Response code(返回状态码): 200
Response message(返回信息): OK
这里绿色的就说明请求是通过的,返回值是200,如果出现红色的×就说明请求失败,这时候可以通过右边的取样器结果和响应数据来查看结果。
聚合报告分析:
样本(Sample):本次测试场景共运行多少线程;
平均值(Average):平均响应时间;
中位数(Median):统计意义上的响应时间中值;
90%百分比(90% line):所有线程中90%的线程响应时间都小于xx的值;
最小值(Min):响应最小时间;
最大值(Max):响应最大时间;
异常(Error):出错率;
Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second 在CVS中被保存为0.5.
Kb/sec - 以Kilobytes/seond来衡量的吞吐量
六、主要概念
1. 测试计划(test plan)
描述一个性能测试,包含本次测试所有相关功能
2. threads(users)线程
Setup thread group:
一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行定期线程组的执行
Teardown thread group:
一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后执行定期的线程组
以上两个线程组,举个例子:loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块,与其对应
Thread group:
通常添加使用的线程,一般一个线程组可看做一个虚拟用户组,其中每个线程为一个虚拟用户
3.测试片段(test fragment)
2.5版本之后新增的一个选项,是一种特殊的线程组,在测试树上与线程组一个层级,但是它不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行。
4. 控制器
Jmeter有2种控制器:取样器(sampler)和逻辑控制器(Logic Controller)
作用:用这些原件驱动处理一个测试。
1) 取样器(Sampler)
是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler
如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等
每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。
2) 逻辑控制器(Logic Controller)
5. 监听器(Listener)
对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等
以上的五类原件就可以构成一个简单的性能测试脚本。
6. 断言(Assertions)
用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。
录制脚本
对大多数刚开始接触性能测试的人来说,代码功力可能不是太好,我们可以通过工具,录制脚本来进行测试,以达到我们的目的
一般来讲,录制脚本有两种方法。
一、利用badboy进行脚本录制
1、下载安装
badboy官网地址:http://www.badboy.com.au;https://badboy.en.softonic.com
安装完成后,启动badboy后,界面如下:
2、录制
1) 如上图,在地址栏(红色标注区域)中输入你需要录制的web应用的URL,这里以http://www.baidu.com为例子
2) 点击开始录制按钮(地址栏上方圈出来的地方)开始录制
3) 开始录制后,你可以在badboy内嵌的浏览器(界面右侧)对被测应用进行操作,所有操作过程都会记录在界面左侧的编辑窗口(黄色标注区域)
4) 录制完成后,点击工具栏中的停止按钮(绿色标注区域),完成脚本的录制
5) 点击file→save或者export to jmeter,将文件保存为jmeter的脚本格式:.jmx;启动jmeter,打开刚录制保存的文件,就可以进行测试了
二、利用jmeter代理服务器进行脚本录制
网址: https://blog.csdn.net/weixin_42614544/article/details/109514086