Jmeter进阶
模拟时间间隔
当模拟用户测试系统时间,点击首页后并不会立刻点击其他页面而是等一段时间后再点击,如何用Jmeter模拟用户点击的时间间隔呢?
- 可以使用 JMeter的 定时器 Timer,定时器 执行优先级高于 取样器, 会先暂停, 可以放在下一个消息的前面
- 也可以使用 取样器 里面的 测试活动 flow control action 取样器
1.固定定时器
注意这里模仿首页和单课页面时间间隔为5秒,固定定时器应在单课测试里添加
点击单课测试——添加——定时器——固定定时器
设置间隔时间为5秒(1s=1000ms)
点击测试,查看结果树
从结果来看,首页开始于 26,单课开始于31,时间间隔设置成功
2.测试活动控制间隔
选择线程组——添加——取样器——测试活动
将测试活动放在首页和单课测试之间
设置间隔时间为5秒
点击测试,查看结果树,发现时间间隔为5秒,设置成功
Jmeter脚本录制
- JMeter提供了录制浏览器的请求的方法,使用的是代理抓包的机制。 确保 HTTP请求默认值 里面的服务器IP 和录制的网址一致 否则录制时,每个HTTP请求里面都会带上IP,还得手工修改删除,不利于统一使用HTTP请求默认值 里面的服务器IP。
点击测试计划——添加——非测试元件——HTTP测试脚本记录器
在记录器设置脚本位置及分组情况
如果你需要录制时过滤掉一些请求,击Request Filtering 配置页,排除模式下 添加 你要 过滤掉 不抓取的 的类型资源 ,使用的是正则表达式
比如
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|eot|otf|ttf|mp4|woff|woff2)
就是排除 访问 所有上述扩展名的 HTTP请求。
网络代理设置
点击设置——代理,打开手动设置代理,配置地址和端口
接下来就要开始录制脚本了,新建一个线程组用来放置脚本位置,点击启动。
点击测试的场景,jmeter就会抓取相应的请求放在线程组里
Jmeter命令行测试及测试报告
1.命令行模式测试
假设 我们有如下的性能测试用例
只有一种用户行为:
无需登录,先访问首页,再访问 单课页 ,再访问 新闻页 访问页面间隔 10 秒
用户数量 1200 个,在10分钟依次上线
如何用命令行来测试其性能,在UI界面上设置好脚本,保存脚本
找到脚本所在位置,运行cmd命令运行
D:\jmeter\apache-jmeter-5.6.3\bin\jmeter -n -t 线程组.jmx -l log.jtl
分析:
这里就测试完成了,如何得到一个测试报告呢
2.测试报告
在cmd中运行以下命令:
D:\jmeter\apache-jmeter-5.6.3\bin\jmeter -g log.jtl -o report1
分析:
运行结束后就会产生report1目录,里面的index.html 打开就是报告 注意 -o 后面的目录 一定要不存在,或者内容为空,否则会报错。
打开测试报告,即可分析各种测试性能(这个自己测试的报告上传到资源绑定,可自行下载观看)