问题思考
接口测试过程中经常需要接口之间关联调用,比如获取上一个接口的返回值,作为另一个接口的请求参数,那么该如何从处理呢?
这里需要使用 Jmeter 的正则表达式提取器,通过对响应的数据来提取指定的数据。
操作案例
从请求 get请求 的响应数据中匹配username的值,然后创建请求 get-name 来引用 username 的值作为请求参数。
设置步骤:
选中请求——添加——后置处理器——正则表达式提取器,将提取器名称改为 提取username
根据 get请求 的响应,提取返回值中的 username 的配置如下:
正则表达式配置表
- 引用名称:请求要引用的变量名称,如填写 username,则可用${username}引用它。
- 正则表达式:匹配需要的内容。
- 模板:用$num$引用起来,如果在正则表达式中有多个匹配数据,num 表示匹配到的第几个值给变量。如:
$1$表示匹配到的第 1 个值存储在变量中。
匹配数字:0 代表随机取值,1 代表全部取值,
缺省值:如果参数没有取得到值,那默认给一个值让它取。
案例中正则表达式说明
- () 括起来的部分就是要提取的。
- . 匹配任何字符串。
- + 一次或多次。
- ? 非贪婪匹配,在找到第一个匹配项后停止。
相关资料:正则表达式教程
新建一个请求 get-name,在新的请求中将 get请求 返回的数据作为参数传递,上一篇说了变量引用使用 ${变量名} 的格式,关联同样如此,如下图所示:
运行之后,查看 get-name 请求的内容是否正确,新的请求的参数为上一个请求的返回值。