【转】jmeter关联的经典应用, 如何将页面返回值作为下次请求的参数
声明:转发自 https://www.cnblogs.com/scarlett-hy/articles/4244055.html
【解决问题:响应报文返回多个key值,需要将所有key值的value取出,并且,循环用于下一个请求】
先介绍一下这次要
在第一个"正则表达式提取器-获取asnid"中, 这个正则的提取还是比较典型的.
引用名称: 说明了 在一下脚本中所引用的名称
正则表达式: ()中是你需要提取的信息 . 页面返回的信息是[123] 所有正则写成\[(\d+?)\] 因为[]是元字符所有需要\反义一下 , jmeter的正则引擎直接是用perl的语法 所有\d就是表示的数字 +表示匹配1个和多个 ?表示非贪婪匹配 . 当然这里的正则也可以写成[(.*?)\]这个意思就是获取()中的所有东西
模板 : $$中的数字表示给匹配的信息加上组号以便后续可以调用, 这里对模板的用法不是很明显, 下面的正则可以很明显看到模板多组号的用途
匹配数字 : 一个正整数代表需要匹配几次 0代表随机匹配 -1代表全部匹配. 这里就写1只要成功匹配一次就可以了
稍微复杂一点的正则请看下图
选中的这个http请求 在返回的页面中有这么几行
这个不难理解
输入变量前缀: 就是先前抓取的barcode_arr这个列表名
start index for loop : 列表的哪个下标开始
end index for loop : 在哪个下标结束
输出变量名 : 循环到的每个元素存入哪个变量
我这里遍历整个barcode_arr,遍历到的每个元素存进barcode 以供后面的测试元件调用 . 接着在看下图
多次匹配后以不同的组号区分
我的理解就是:
正则中出现了3个括号() , 我需要分别提取3个括号中的所有东西
那就需要在模板中定义三个组号$1$$2$$3$ , 在匹配数字中配置-1
当后面页面调用这次匹配的内容时就可以这样区别
${return_1_g1}第一组中的第一个内容
${return_1_g2}第二组中的第一个内容
${return_2_g1}第一组中的第二个内容
${return_2_g2}第二组中的第二个内容
总结:
jmeter的关联我的理解和实例就是这些. 知道如何识别页面的信息在对于我们更好完成性能测试和自动化测试,会有很大的帮助和提高 不是吗!哈哈