JMeter录制测试脚本
本文给出了录制HTTP/HTTPS的一系列步骤,使用录制器是一种比较容易创建测试计划的方式。
JMeter安装与配置
- 安装JDK,配置JDK环境变量
- 解压JMeter文件夹至本地硬盘即可完成安装,比如
D:\apache-jmeter511
(此目录即为JMeter安装目录)
JMeter操作说明
-
进入JMeter安装目录,打开bin文件夹,双击jmeterw.bat
-
从菜单栏选择模板
-
选择Recording,点击Create
-
输入要录制的域名、录制输出文件、HTTP/HTTPS,点击Create ==>生成测试计划
-
设置HTTP Request Defaults
- 服务器名称或IP:输入 www.example.com(可以自行调整,跟上述步骤保持一致即可)
- 路径:保持为空
-
回到HTTP(S) Test Script Recorder,点击顶部的启动按钮
此时会启动JMeter代理服务器来拦截浏览器请求,JMeter安装目录下的bin文件夹会产生一个名为**ApacheJMeterTemporaryRootCA.crt
**的证书文件。 -
安装JMeter CA证书,用于HTTPS录制
- Chrome或者IE浏览器安装证书
- 打开JMeter安装目录下的bin文件夹,点击证书文件**
ApacheJMeterTemporaryRootCA.crt
** - 点击“安装证书”->“下一步”,直至安装完成
- 打开JMeter安装目录下的bin文件夹,点击证书文件**
- 其它浏览器安装证书,请参考段落《Installing the JMeter CA certificate for HTTPS recording》https://jmeter.apache.org/usermanual/component_reference.html#HTTP%28S%29_Test_Script_Recorder
- Chrome或者IE浏览器安装证书
配置浏览器使用JMeter代理
- 以IE为例,打开浏览器,同时不要关闭JMeter
- 工具栏点击“Internet选项”,打开如下左图Internet选项窗口
- 切换“连接”tab->点击“局域网设置”,打开如下右图“局域网(LAN)设置”
- 勾选代理服务器下方“为LAN使用代理服务器…”
- 地址:localhost或者本机地址
- 端口:8888
- 点击“确定”按钮,返回浏览器
录制浏览器导航记录
浏览器地址栏输入www.baidu.com
,回车
- 随便点击几个链接
- 关闭浏览器代理,然后关闭浏览器,回到JMeter
展开线程组(Thread Group),可以看到几个采样器。至此,测试计划已经生成。
在这个示例中,没有默认的请求参数。如果所有的页面需要同一个特定的请求参数,可以把参数项添加到HTTP Request Defaults里面。
- 选择Thread Group修改几个默认设置
- 线程数:5
- Ramp-Up时间:不变
- 循环次数:2
验证脚本
执行测试计划前需要验证录制的脚本。首先保存测试计划。
右键点击Thread Group -> 验证
查看“View Results Tree”要素,检查所有结果是否正确。
参数化,关联脚本
有些脚本会遇到下列情况:
- 参数化输入(登录,密码,搜索关键字,等等)
- 两个请求直接的数据关联(会话级别的变量,等等)
为了实现参数化,可以使用下列方法:
- 添加配置元件“
CSV数据文件设置
”,从csv文件获取输入数据 - 使用JMeter函数 __counter, __time, 等等
- 其它方法
为了实现不同请求之间的数据关联,可以配置“后置处理器
”,比如JSON提取器
,正则表达式提取器
,然后从一个请求中获得数据后注入另一个请求。
查找关联数据的最简单方法是使用“View Results Tree
”里的搜索功能:
开始测试
至此,我们已经准备好运行测试计划,并查看运行结果。有两种方式来运行测试计划:
- 使用图形界面操作,大量负载测试情况下不推荐该方式
- 使用命令行
方案一,操作图形界面,仅适用调试阶段,负载测试中需要使用命令行模式(无图形界面)
点击菜单栏运行->启动
或者快捷键Ctrl
+ R
开始测试前,添加监听器元件汇总报告
,然后选中该元件。测试运行后,统计数据开始变化直到测试完成。测试完成后,汇总报告如下:
测试运行过程中,右上角会有个绿色圆圈。测试结束后,圆圈变成灰色。
方案二,使用命令行操作,cmd窗口输入命令jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
测试结束后,路径[Path to output folder]
下会生成一个HTML报告文件。
实际使用命令如下:
jmeter -n -t 'E:\Vser\jimmi\HTTP(S) Test Script Recorder.jmx' -l test_results -e -o E:\Vser\jimmi\0724\
命令行结果如下:
HTML测试结果如下: