-
组件执行顺序:
1.测试计划:起点
2.线程组:
3.配置原件
4.前置处理器:
5.逻辑控制器:单次请求,循环请求,判断请求
6.定时器:固定定时器,高斯,随机
7.取样器:请求,http,tcp,jdbc
8.后置处理器:
9.断言:
10.监听器:收集测试结果
-
作用域
兄弟节点,父节点,兄弟下的子节点
-
关联接口测试
上一个接口的返回值,是当前结果的请求参数
-
正则表达式提取器
token为自定义名称
正则表达式,确认提取规则
模板固定
匹配数字为你想要的match数组下标
下一个接口的请求参数值可以填${token},自动带入。
-
测试片段:
有两种用法:
1.测试人员用例交互
封装的测试模块,在使用时,选择include控制器,将此测试片段加入进去,即可一起生成结果树。
在使用过程中,即需要登录功能,却不需要测登录功能,则引入测试片段(一个文件)
自己的测试模块封装成测试片段,只需选择测试片段,将请求拖入即可。
2.控制部分测试
使用模块控制器:
可以通过模块控制器,控制测试片段,在模块控制器中选择哪个测试片段则执行哪个测试片段。
是一种封装思想。
-
用户定义的变量:
将可能会修改的值定义到其中,(类似nacos),其实就是配置,常配置量包括端口号,服务网址。
具体接口使用${port}引用
注意:Jmeter中是从上到下执行,定义变量一定要放在前面
-
CSV数据文件设置:
测试用例写在一个csv文件中(lisi,12345),新建一个CSV数据文件设置,在其中设置测试用例的变量的格式(如username,pwd),在http请求中,将变量用${username}代替。
当其中有多组数据时,添加循环控制器。
有多组数据时,用循环控制器遍历里面的数据。
-
断言:
在请求下面新增断言,采用json断言,取值方式:$.data.xxx,下方填入预期结果。
预期结果也可写在csv文件中,不同数据值不同。
-
解决关联接口问题:
后置处理器中的Json提取器,提取规则$.data.token
赋值规则,随便起名
整个Jmeter中都可以使用已赋值变量,包括名称
-
Jmeter连接数据库
测试计划下,JDBC Connection Configuration,填写自定义名称,用户名,密码,driver class,url
在测试计划中,添加jar包。
在线程组中添加JDBC Request,编写sql语句,将查询行与下方命名一一对应。
断言时引入变量名称即可,变量名称一般为数组,要加_1。
-
随机抽取数据:
采用order by rand(),id取${ids_1}
如果参数中想使用${ids_2}....循环10次
引用计数器,写引用名称n。
但是两个变量无法直接拼接,需要用到__V函数,在最上方工具中,他会告诉你最终格式。
例:${__V(ids_${n})}
-
调试取样器:
遇到问题时使用,出现全部变量信息。
-
加密接口
将入参和出参全部使用算法进行加密。
客户端一开始并不知道怎么加密,它先发送一次请求到服务端。
不安全是因为,证书机构是公开的,黑客可以伪造客户端获取加密算法,不安全。
外项目访问我们的接口,需要给他一段密钥,我们将这个密钥记录到数据库中,首先验证格式。调用我们接口,
-
Jmeter测试加密接口
新增http请求,访问https://www.lddgo.ne,获取加密后的值。
再调用接口。