Jmeter中的关联(正则表达式+json)-空谷幽兰
1、什么是关联?
关联即将服务器返回的动态变化的值保存为一个参数,以便后续接口使用;
2、jmeter中的关联方法
(1)正则表达式
我们现在要用正则表达式取id为1,然后作为下一个请求的入参;
正则表达式的写法:"id": (.*), "age": 18
下一个请求入参是:${id},看一下返回结果
成功取到id为1
附常用元字符:
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配行的开始
$ 匹配行的结束
常用反义元字符
代码 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
常用重复限定符
代码 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
(2)json path extractor插件
注:jmeter 3.0可以安装此插件,2.0版本可以安装此插件,但是不生效,所以想使用该插件的话还是安装3.0版本及以上的jmeter;
jmeter官方有一个 json path extractor的插件,下载地址:http://jmeter-plugins.org/wiki/JSONPathExtractor/
点击下方的Download,出现N多版本的选择,这里我们选择2.6版本
2.6版本下载成功后的压缩包
下载成功后解压;
然后把jpgc-json-2.6下lib文件夹下的jmeter-plugins-cmn-jmeter-0.3.jar放到jmeter的安装地址下的lib文件夹下
然后把下载好的lib-ext下的两个文件 放到jmeter安装路径下的lib-ext下
jmeter开始使用插件
简单例子:
复杂例子:
driver_switch_schedule_id在data这个列表里面存着,取第一个driver_switch_schedule_id,那就要先取到result里面的值,再取data里面的数据,再取到data里的第一个元素。
$.result.data[0].driver_switch_schedule_id