关联是什么?

什么是关联,通俗来讲,就是请求之间通过传递参数建立联系。一般,我们需要将一个请求的响应参数,作为另一个请求的入参。比如登录后的操作,第一步实现登录请求,然后将请求返回的token提取出来保存到一个变量中,后续请求作为入参使用。

jmeter通过正则表达式提取器来实现这一场景。

正则表达式提取器位置如下

Jmeter接口测试之参数关联_python


实现案例

有如下两个接口,通过正则表达式提取器,将第一个接口的城市代码,作为第二个请求的参数传入。

获取城市代码接口;

http://toy1.weather.com.cn/search?cityname=nanjing

根据城市代码获取天气接口:

http://www.weather.com.cn/data/cityinfo/101190101.html

操作步骤

  1. 建立http请求,获取南京的城市代码,添加察看结果树。

Jmeter接口测试之参数关联_python_02


2.运行后,在响应数据中复制目标参数及前后的字符,尽量保证复制的字符串具有唯一性。

Jmeter接口测试之参数关联_python_03


3.添加正则表达式提取器,填写提取器相关参数。

Jmeter接口测试之参数关联_python_04


4.添加获取城市天气请求,添加察看结果树,使用${citycode}替换101190101。

使用${xx}引用上述正则提取的参数。

Jmeter接口测试之参数关联_python_05


5.响应结果如下

Jmeter接口测试之参数关联_python_06


提取器参数解释

引用名称:提取的参数名称,自定义,后续请求引用时使用。

正则表达式:获取响应结果的正则公式,常用(.+?)和(.*?),两者结果一致。

具体字符含义如下:

Jmeter接口测试之参数关联_python_07


模板:-1全部,0 随机,对应上述正则表达式,若只有一个正则一般就填写$1$。

匹配数字:匹配结果作为一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,其他整数表示对应第几个值。

缺省值:匹配失败时取的默认值。

小技巧

可以在线程组中添加调试取样器,通过取样器获取的请求返回值可以查看所有正则参数的取值。

Jmeter接口测试之参数关联_python_08


Jmeter接口测试之参数关联_python_09


常见的正则表达式操作符

Jmeter接口测试之参数关联_python_10