1、jmeter介绍
2、jmeter变量环境部署
3、jmeter目录结构
4、jmeter Gui模式
5、jmeter 非Gui模式
6、jmeter 录制完显示乱码设置
7、jmeter 结果分析
1.jmeter介绍
1.1.jmeter基于java环境中运行,所以运行时电脑中需要配置java的jdk环境变量进行,不同版本的jmeter支持的jdk版本也不同,比如jmeter3.2只支持jdk8.0以上的版本,jmeter下载后解压安装并部署jdk就可以直接使用了。
1.2.jmeter下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1sKITYdiG7GwBGTzuHvQdTQ
密码:we6g
官网地址:https://jmeter.apache.org/
1.3.jdk下载(网盘或官网下载)
网盘:https://pan.baidu.com/s/1IZQbtdzde-6SZALfSh4-7w
密码:2zin
官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.jemter变量环境部署
参考地址:https://jingyan.baidu.com/article/c85b7a6414f2ee003bac95d5.html
验证结果:
在命令窗口输入 java -version 回车(会显示出jdk的版本及时间)
在命令窗口输入java回车(会显示出java命令页)
3.jmeter目录结构
JMeter中包含以下几个目录:
bin、docs、extras、lib、licenses、printable_docs
3.1 bin目录:
examples:目录中有csv样例
ApacheJMeter.jar:JMeter表现层的源码包
jmeter.bat:windows下启动文件
jmeter.sh:Linux下启动文件
jmeter.log:运行产生的日志和错误信息可在此文件查看
jmeter.properties:系统配置文件
jmeter-server.bat:windows下启动负载生成器服务文件
jmeter-server:Linux下启动负载生成器文件
3.2 docs目录:
接口文档目录
docsapi下的index.html可查看
3.3 extras目录
提供了对构建工具Ant的支持,可以使用Ant来实现测试自动化。
例如批量脚本执行,产生HTML格式的报表,测试运行时,可以把测试数据记录下来,Jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行“ant -Dtest=文件名 report”,就可以生成测试统计报表
3.4 lib目录
lib下存放JMeter所依赖的外部jar包:
如httpclient.jar、httpcore.jar、httpmime.jar等等
JMeter依赖的核心jar包、JMeter插件包也在此目录
libjunit下存放junit测试脚本
3.5 Licenses目录
jmeter证书目录
3.6 Printable_docs目录
用户使用手册,printable_docs下的index.html可查看
4.jmeter GUI模式
4.1 Jmeter windows下启动
4.2 Jmeter 主页面
4.3 Jmeter 测试元件简介
4.4 Jmeter 线程组
4.5 Jmeter接口测试实例
a、录制脚本
b、编写脚本
c、参数化数据
4.1 Jmeter的启动:
bin目录下启动jmeter.bat
4.2 Jmeter主页面
测试计划:
测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器
下面看一下一个计划下面都有哪些主要的功能模块
(右键单击“测试计划”弹出菜单)
4.3 测试元件:
e、Timer 定时器
负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求
f、Logic controller 逻辑控制器
允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
g、Pre processor Post processor 前端处理器、后端处理器
前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
h、config element 配置元件
维护Sampler需要的配置信息
4.4 线程组:
线程组的添加:
测试计划—>Threads—>Thread group
名称
注释
在取样器错误后要执行的动作
继续 (如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。)
Start Next Thread Loop
(忽略错误,线程当前循环错误,执行下一个循环。)
停止线程 (只限当前线程停止,不影响其他线程执行)
停止测试 (当前执行的线程全部执行完毕后结束)
Stop Test Now (立刻停止)
线程属性
线程数(需要设置多少线程执行测试,可看作模拟的用户数)
Ramp-up Period (in Seconds)(多长时间启动所有线程)
循环次数(线程跑几次)
Delay Thread creation until needed
(默认不勾选,延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟 和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。)
调度器(默认不勾选,选中之后可以配置启动时间)
启动时间(测试计划什么时候启动,启动延迟会覆盖它。当启动时间已过或手动运行
脚本时,当前时间也会覆盖它(但启动时间页面显示不会变)。)
结束时间(测试计划什么时候结束,持续时间会覆盖它)
持续时间(测试计划持续多长时间,会覆盖结束时间)
启动延时(测试计划延迟多长时间启动,会覆盖启动时间)
4.5 接口测试-实例
A、脚本的录制
A-1:
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组
A-2:
添加HTTP代理服务器:
右键工作台-》添加-》非测试元件-》HTTP代理服务器
A-3:
配置代理服务器
--端口(Port域):XXXX
--目标控制器(Target Controller):测试计划>XXXX(线程组名称)
--分组:每个组放入一个新的控制器
--添加“包含模式(Patterns to Include)”:如“.*.html”
--添加“排除模式(Patterns to Exclude)”:如“.*.gif”
A-3:
添加HTTP代理服务器:
A-4:
手机配置
1、配置手机代理
2、安装证书
进入jmeter bin安装目录,找到“ApacheJMeterTemporaryRootCA.crt”文件,
以任何可行方式上传至手机(如何安装证书可自行百度)
4、证书安装成功后即可录制脚本
安装步骤:使用QQ、微信或USB线传输到手机,设置-更多设置-系统安全-从SD卡中安装。注:
安装前手机需设置为数字解锁密码,安装后可以关闭。
B 脚本的编写:
B-1
添加线程组:
右键测试计划-》添加-》Threads(Users)-》线程组
B-2
添加http请求
右击“线程组”,然后“添加”–>“Sampler”–>“HTTP请求”
B-3
在Sampler-http请求中完善:
域名
方法
Content encoding
路径
参数
B-4
添加查看结果树
右击“线程组”,然后“添加”–>“监听器”–>“查看结果树”
C 参数化数据
C-1
添加 CSV Data Set Config
右击“线程组”,然后“添加”–>“配置元件”–>“CSV Data Set Config”
C-2
CSV Data Set Config配置
C-3
CSV Data Set Config配置说明
Filename:制定的文档路径和名字;可以右击文档-属性,找到文档的路径,注意要写上文档名字和后缀;
File enconding:编码格式,如果txt文档中有中文,该行就要写入utf-8;
Variable Names:定义参数;txt文档中有几列就定义几个参数;参数见用英文逗号隔开;直接写wxid,在其他模块用的时候直接${wxid}调用即可;
Recycle on EOF:到了文件尾处,是否循环读取参数;
Stop thread on EOF:到了文件尾,是否停止线程;
C-4
http请求引用参数化数据
请求中参数值为${Variable Names}直接来引用
D 执行测试
命令行执行测试
5.Jmeter的非GUI模式
这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
jmeter -n -t C:WorkOrder_10.jmx -l %workspace%Report.jtl -e -o %jmxPath%TestResult_Order\%d%Report
6.Jmeter录制完显示乱码设置
6.1.修改jmeter配置文件:jmeter.properties
位置:jmeter中bin目录下
6.1.修改jmeter配置文件:jmeter.properties
打开配置文件后,
Ctrl+F输入encoding,把这行代码“=”后全部删除加入UTF-8,前方注释删除。
7.Jmeter结果分析
7.1.聚合报告
7.2.断言
添加响应断言:线程组-断言-响应断言
1.断言可以设置自己的预期结果
2.如我发送的请求返回值中有"success":true信息。
3.可以在响应断言中添加"success":true。
7.3.图形结果
添加图形结果:线程组-添加-监听器-图形结果
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。