Jmeter中参数的传递

背景

在平时做接口测试的时候,经常会遇到上一个接口的response中的某一个元素,是下一个接口的参数。
如:

  • 新增一个订单,返回一定订单ID,下一个接口对这个订单进行修改,需要传入上一个订单的ID
  • 登陆接口返回的一个值str,需要在后续的接口中作为参数传入
    等等,场景大同小异。
    概括起来就是参数的传递。
    这种平时我们写脚本,写代码相对比较容易实现,可是如果在Jmeter中应该怎么解决呢?

后置处理器

整体思路和我们写代码差不多,即:

  • 1.找到这个参数
  • 2.把它赋值给一个变量a
  • 3.后续接口需要用到,传入这个变量a

简单的实践

如目前我们一个接口,返回内容如下:


image.png

需求:把code和msg提取出来,传给下一个接口使用

Regular Expression Extrator

这边可以用Jmeter 的Regular Expression Extractor 来解决
在这个http request 请求后,挂在一个Regular Expression Extractor,其打开后页面如下:


image.png

field to check: 需要你自己选定是对response的内容还是头,还是url进行抓取。

Name of created variable: 抓取出来的变量名称,这边自行命名

Regular expression: 这个是最重要的!!!正则表达式就写在这里。 正则表达式的正确与否,是你抓取的关键,如果正则写错了,参数就无法抓取出来了。
这边可以加上Debug Sampler,打印抓取的参数,以便修改正则

Template: 提取正则表达式里面的内容,通常我们只提取一个字串,所以通常都是1

Match No: 匹配的数字, 通常我们只提取一个字串,一般写1。

Default Value: 缺省值或默认值,用于没有抓取到值时的处理。

这样通过 ${var}的方式,把变量写入request里面

如上所示,这样就把status给提起出来


image.png

点击 view result tree中的结果,点击Debug Sampler可以看到我们抓取的数字是否正确

JSON Extrator

类似还有 Json Extrator,整体接口和上面相似,提取的部分换成了JSONPath的语法,相对可能更加简单一点
如图,这边我提取msg的内容


image.png

下面我把上面提取的两个参数,同时传递给百度


image.png

image.png

从结果数中可以看出,两个参数 waiqin_status和waiqin_msg均传递成功。

推荐阅读更多精彩内容