主要元件
◼
测试计划
◼
线程组
◼
采样器(sampler)
◼
断言
◼
监听器
1、线程组
jmeter中的线程组主要有setUp线程组、tearDown线程组和线程组;
setUp线程组:
一种特殊类型的线程组,可用于执行预测试操作;
作用
例如前面,我们说到的,压测之前只用JMeter调用业务接口造数或者通过JDBC操作数据库造数,可以放到setUp线程组之中;除了造数,工作中,如果使用EasyNMon进行服务器资源监控,也可以使用setUp线程组,开启监控服务器的操作,后续专门找个篇章给大家讲解(
EasyNMon监控);
tearDown线程组:
一种特殊类型的线程组,可用于执行测试后工作;
作用
这个是我们压测结束之后,可以使用该线程组,对我们前面压测的数据进行清除操作,同样可以通过业务接口或者操作数据库进行压测后数据的清除操作;
使用EasyNMon进行服务器资源监控,结束之后可以调用接口,停止监控;
线程组:
普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
执行顺序
setUp线程组->线程组->tearDown线程组
线程组讲义
取样器错误后要执行的动作
- 继续:如果取样器里的执行出现错误失败的时候,请求不会停止,继续执行。
- 启动下一进程循环: 忽略错误,线程当前循环错误,执行下一个循环。
- 停止线程: 只限当前线程停止,不影响其他线程执行
- 停止测试: 当前执行的线程全部执行完毕后结束
- 立即停止测试: 立刻停止
线程属性
2、HTTP请求元件
路径:添加HTTP请求:线程组下添加→Sampler(取样器) →HTTP请求
GET请求
POST请求(JSON)
添加请求头
名称:Content-Type 值:application/json
请求方式为POST,请求体放到消息体上,点击启动;
在察看结果树中,查看接口的调用情况;
POST接口(key=value)(application/x-www-form-urlencoded)
POST接口(form-data)
MIME类型可以通过抓包获取;
3.断言
3.1 断言的概念
断言:让程序判断预期结果和实际结果是否一致。
提示:
JMeter
断言是在请求的返回层面增加一层判断机制;因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测
试准确性。
3.2 JMeter中常用断言
- 响应断言
- JSON断言
3.3响应断言
添加方式:测试计划
-->
线程组
--> HTTP
请求
--> (
右键添加
)
断言
-->
响应断言
![](https://i-blog.csdnimg.cn/blog_migrate/653b67dea477744cfa84dc26480c20be.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d0206665d10a81cdd3e8673620159cc4.png)
参数详解
Apply to
:适用范围
Main sample and sub-samples:
作用于父节点取样器及对应子节点取样器
;
Main sample only:
仅作用于父节点取样器
;
Sub-samples only:
仅作用于子节点取样器
;
JMeter Variable:
作用于
jmeter
变量
(
输入框内可输入
jmeter
的变量名称
);
测试字段:要检查的项
响应文本
:
来自服务器的响应文本,即主体,不包括任何
HTTP
头
响应代码
:
响应的状态码,例如:
200
响应信息
:
响应的信息,例如:
OK
Response Headers:
响应头部
Request Headers:
请求头部
Request Data:
请求数据
URL
样本
:
响应的
URL
Document(text):
响应的整个文档
忽略状态:忽略返回的响应状态码
模式匹配规则
包括:文本包含指定的正则表达式
匹配:整个文本匹配指定的正则表达式
Equals
:整个返回结果的文本等于指定的字符串
(
区分大小写
)
Substring
:返回结果的文本包含指定字符串
(
区分大小写
)
否:取反
或者:如果存在多个测试模式,勾选代表逻辑或(只要有一个模式匹配,则断言就是
OK
),不勾选代表逻辑与(所有都必
须匹配,断言才是
OK
)
注意: Equals 和 Substring 模式是普通字符串,而不是正则表达式
3.4响应断言
添加方式:测试计划
-->
线程组
--> HTTP
请求
--> (
右键添加
)
断言
--> JSON
断言
![](https://i-blog.csdnimg.cn/blog_migrate/98daad66b8820c0c43a7e210b73c7e15.png)
json路径表达式
$.code
代表json中的code字段值
详细用法参见:https://github.com/json-path/JsonPath
![](https://i-blog.csdnimg.cn/blog_migrate/c4641083f617b3a3576190d8531fbf28.png)
4、参数化
测试计划-用户定义的变量(定义全局变量)
Jmeter中调用参数的方法:
${ip}
后续再更新。。。。。。