小詹同学的JMeter探索之旅开始啦~
文章目录
2.1 JMeter脚本录制
2.1.1 BadBoy脚本录制
2.1.1.1 BadBoy录制脚本
2.1.1.2 脚本回放
2.1.2 手动书写JMeter脚本
打开浏览器(以FireFox为例),按Ctrl+Shift+I进入开发者工具(我的电脑是联想小新,默认快捷键),选择网络,访问被测系统
![在这里插入图片描述](https://img-blog.csdnimg.cn/9101c49a098b41babeba568b23c0373b.png
进入JMeter,右键点击【Test Plan】,依次点击【添加】-【线程(用户)】-【线程组】
添加线程组后,右键点击该线程组,依次点击【添加】-【取样器】-【HTTP请求】
新建一个HTTP请求模块,填写所抓到的请求信息。此时所抓到的请求信息如下:
根据抓到的请求依次填写协议、服务名称或IP、端口号、方法、路径、参数;复制请求中的消息体,点击【从剪贴板添加】
2.2JMeter脚本调试
录制脚本方式与手写脚本调试方式一致
2.2.1 导入JMeter文件
依次点击【文件】-【打开】,选择后缀为.jmx的文件
2.2.2 添加循环控制器
右键点击HTTP请求,依次点击【插入上级】-【逻辑控制器】-【循环控制器】
注:循环控制器中的“循环次数”是仅指该循环控制器下请求的循环次数,。例:线程组中“循环次数”输入2,循环控制器中的“循环次数”输入5,那么该循环控制器下请求的执行次数应该是25=10次
2.2.3 添加事务控制器
右键点击HTTP请求,依次点击【插入上级】-【逻辑控制器】-【事务控制器】
注:事务控制器需在循环控制器里,被测业务在事务控制器里面,勾选事物控制器“Generate parent sample”
Generate parent sample:是否生成一个父取样,即将事务控制器下的请求看成一个整体,(一般勾选该选项);勾选此项后监听器下的元件以事务控制器统计信息,若不勾选该选项,统计每个请求的信息,再统计事务的信息;勾选Generate parent sample之后,只显示事务,统计事务信息(事务中每个请求的总和)
Include duration of timer and pre-post processors in generated sample :是否在事务控制器中包含计时器和后处理程序的持续时间,(一般不勾选该选项),选中将在取样器前与后加上延时
2.2.4 添加断言(检查点)
2.2.4.1 JSON断言
在被测事务请求处,右键点击【添加】,依次点击【断言】-【JSON断言】
注意:某个请求执行状态(成功/失败),且响应为json格式时,使用json断言
例:若HTTP请求执行成功响应为如下图json格式:
JSON断言添加则为:判断code值是否为0
Assert JSON Path exists :$.添加所需检查的JSON字段名(例:code)
Expected Value :添加的断言值(例:0)
Additionally assert value : 是否添加断言值(若不勾选,则Expected Value无法编辑)
Match as regular exression:是否支持正则表达式
Expect null:断言值为null,会匹配断言结果为null的情况
Invert assertion(will fail if above conditions met):取反,若断言结果为true,勾选此项后,断言结果为false;若断言结果为false,勾选此项后,断言结果为true
2.2.4.2 响应断言
在被测事务请求处,右键点击【添加】,依次点击【断言】-【响应断言】
(1)Apply to
关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,就有main sample和 sub-sample之分了。
(2)测试字段
勾选“响应文本”,会在响应数据中进行校验。
(3)模式匹配规则
勾选“包括”,意味着只要相应数据中包含要校验的字段,任务就算成功。
(4)要测试的模式
即需要校验的数据值。
2.2.6 添加响应时间图
右键点击被测事务控制器,依次点击【添加】-【监听器】-【响应时间图】
2.2.7 添加聚合报告