Jmeter功能介绍及结合ant的使用
安装与配置 注:官方建议不要用GUI模式做负载测试,GUI模式限于做脚本开发调试!
结构体系
取样器:
访问路径:测试计划-线程组-取样器
作用:模拟用户操作,向服务器发出http请求、Java请求或者web Service请求等
断言:
访问路径:测试计划-断言
作用:验证结果是否正确
监听器:
访问路径:测试计划-监听器
作用:1、添加结果监听,可以保存文件;
2、展示结果,以表格或者图形的形式
前置处理器:
访问路径:测试计划-前置处理器
作用:环境或者参数的准备工作
使用场景:在对数据库操作前建立一个数据库链接
配置原件:
访问路径:测试计划-配置原件
作用:为取样器提供预备数据
使用场景:1、脚本的参数化配置
2、自动记录服务器的返回数据,入cache信息
后置处理器:
访问路径:测试计划-后置处理器
作用:对响应数据做处理
使用场景:处理服务器的返回结果,利用正则表达式提取器进行登录的SessionID的提取
控制器:
访问路径:测试计划-线程组-逻辑控制器
作用:满足一些场景的逻辑控制需求
使用场景:例如用仅一次控制器控制登录次数
定时器:
访问路径:测试计划-线程组-定时器
作用:满足一些场景的控制需求
使用场景:模拟请求在同一时刻发送,并发负载请求
线程组:
访问路径:测试计划-线程组
作用:一线程代表一个虚拟用户,模拟大量用户负载
测试片段:
访问路径:测试计划-测试片段
作用:可以用来辅助做脚本备份和服用,类似脚本开发中的模块化
运行原理
以线程的方式,建立一个线程池。通过多线程运行取样器来模拟产生大量负载,在运行过程中通过断言来判断结果的正确性,通过监听器来手机记录测试结果。
使用
添加HTTP请求:填写【协议】【服务器名称或IP】【请求方式】【请求路径】注:使用自定义变量或者参数使用${}方式取值
![](https://img.haomeiwen.com/i12306194/da9287651ddbb32f.png)
添加用户定义的变量:添加-配置元件-用户定义的变量(一般用于配置公共变量)
![](https://img.haomeiwen.com/i12306194/8bfcc18871e00f22.png)
添加参数-[参数化-csv]:添加-配置元件-CSV数据文件设置(例如模仿多个用户登录,可将用户名和密码定义为参数传入接口使用)
![](https://img.haomeiwen.com/i12306194/a3df4080ead65a5b.png)
1、在本地创建文本文件或者excel文件
2、文件中写入参数并用英文逗号隔开,例如userName,num,不同线程参数可用换行符
3、将文件传入jmeter
添加参数-【用户参数】:添加-前置处理器-参数
![](https://img.haomeiwen.com/i12306194/673cda8d770b521d.png)
添加参数-【随机参数】:工具-函数助手对话框
![](https://img.haomeiwen.com/i12306194/64e6dab181baf931.png)
添加请求参数:
![](https://img.haomeiwen.com/i12306194/52f0b6119b46bd95.png)
HTTP信息头管理器:选中http请求-添加-配置元键-HTTP信息头管理器
![](https://img.haomeiwen.com/i12306194/331a6e377f87cdb4.png)
正则表达式提取器:选中http请求-添加-后置处理器-正则表达式提取器(提取请求结果中的值)
![](https://img.haomeiwen.com/i12306194/70ed1bbd55a14c59.png)
JSON提取器:选中http请求-添加-后置处理器-JSON提取器
![](https://img.haomeiwen.com/i12306194/e3bfcf635dc76b47.png)
调试取样器:点击线程组-添加-取样器-调试取样器(查看取样器结果)
![](https://img.haomeiwen.com/i12306194/fe8af0b471d5fafe.png)
链接数据库:1、点击线程组-添加-配置元键-JDBC Connection Configuration;2、点击线程组-添加-监听器-JDBC Request 3、添加查看结果树 4、聚合报告
![](https://img.haomeiwen.com/i12306194/acca9261340ee11d.png)
![](https://img.haomeiwen.com/i12306194/4d75110717309873.png)
数据监控工具-XAMPP(后续研究)
ANT(构建工具):跨平台,使用java,功能强大,核心是使用一个配置文件执行脚本(bulid.xml)
下载:https://ant.apache.org/bindownload.cgi,解压到指定盘中
![](https://img.haomeiwen.com/i12306194/7516bc502a4ed7b6.png)
![](https://img.haomeiwen.com/i12306194/d1d281d2c605bccf.png)
![](https://img.haomeiwen.com/i12306194/505872b7a9aa7cd1.png)
配置环境变量:
集成到jmeter:
1、将Jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
2、修改jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
![](https://img.haomeiwen.com/i12306194/46a2af4784e5871c.png)
3、在指定的工作目录下创建文件夹view(jmeter脚本保存的目录),并在其中创建一个build.xml文件并配置注意配置style="E:\jmeter\apache-jmeter-5.5/extras/jmeter-results-detail-report_21.xsl">
4、jmeter配置jmeter.properties
![](https://img.haomeiwen.com/i12306194/e87f857e00f5a251.png)
Jenkins集成 注:需要JDK11 or JDK17
安装地址:https://jenkins.io/download/
1、接口联调测试
添加接口a
添加公用变量 点击取样器-配置元件-用户定义变量
添加Json提取器 点击取样器-后置处理器-Json提取器(在$.data.id)
添加接口b
配置参数${testname}
添加调试取样器 线程组-取样器-debug sampler
在调试取样器下面添加查看结果树,查看获取的结果是否展示正确
注:jmeter传入参数不支持数组格式,需要转换成字符串!!!!
MD5、base64加密 工具-函数助手对话框
![](https://img.haomeiwen.com/i12306194/7d5c5f84ab05d110.png)