Jmeter 将上一个请求的结果作为下一个请求的参数
在进行接口测试的时候,很多时候需要将上一个请求的结果作为下一个请求的参数带入其中,比如说登录后的token。
jmeter中,有两种方法可以实现此功能:
- 正则表达式提取器
- json path 提取器
针对返回格式为json的,推荐使用json path 提取器。
首先新建一个线程组,然后分别添加两个http request sample
这里看到第一个request 用于获取token,第二获取用户列表request 便用到了第一个request 返回的token。
这里将token放在请求头里,所以需要添加一个http header manager sample 。
由于后面的请求都需要使用token进行访问,所以将请求头放在后续请求的前面,这样就不需要针对每个请求都添加一个http header manager sample了,这里可以参考元件作用域
右击需要进行提取的请求添加json path 提取器
name of created variables:此处填写变量名,即后面需要使用此参数地方时候所填写的值
json path expressions:填写需要提取的json值的表达式json表达式语法参考:https://github.com/json-path/JsonPath
引用:${变量名}
二、 提参采样器添加正则表达式提取器
- 引用名称(name of created variable):是下个请求将要引用到的变量名;
- 正则表达式(regularexpression):是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
- 模板(template):是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
- 匹配数字(match No):表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
- 缺省(default value):值表示参数没有取到值的话,默认给它的值。一般不填。
引用:${变量名}