测试场景:JMeter测试计划创建多个线程组,后面线程组中会用到前面线程组的参数。按照以往编写的脚本,所有的参数都在同一个线程组中传递显然不符合测试场景要求,此时就会用到BeanShell后置处置器。
实现步骤:
1.第一个线程组:提取用到的参数,这里使用的是JSON提取,也可以使用正则提取,提取出来的参数命名为wtid
2.为接口请求添加BeanShell后置处理程序,将JSON提取器提取到的wtid变量值转存到自定义属性newwtid中。配置如下如:
__setProperty借助函数助手生成,填写属性名称及属性值
运行,查看日志中是否提取到参数值,截图显示已提取成功
3.第二个线程组:使用函数助手生成__P
扫描二维码关注公众号,回复:
15395671 查看本文章
接口请求填写参数函数
4.运行,查看接口参数,跨线程组传递成功
5.函数说明
__setProperty
语法格式 ${__setProperty(key,value,true)}
参数说明
字段 | 含义 | 是否必填 |
Property Name | 属性名 | 是 |
Property Value | 属性值 | 是 |
True/False | 是否返回原始值? | 否 |
__P(是简化版的__property)
语法格式 ${__P(key,default)}
参数说明
字段 | 含义 | 是否必填 |
Property Name | 需要读取的属性名 | 是 |
Default Name | 属性默认值 | 否 |