关联:将一个服务请求的响应内容(出参)作为另一个服务请求的请求数据(入参)
1、同一个线程组
同一个线程组的可以直接关联,即在第一个服务请求添加后置处理器-Json提取器、范围提取器、正则表达式提取器等获取响应内容,赋值给变量,将变量作为后面服务请求的请求数据。
2、不同线程组
不同线程组的变量无法直接关联,可以通过函数助手中${__setProperty(,,)}
和${__property(,,)}
去实现
步骤1:线程组A:添加Json提取器/范围提取器/正则表达式提取器等、提取线程组A中某个请求的返回值,赋值给变量如result
步骤2:打开函数助手,选择${__setProperty()}
函数,将变量${result}
赋给变量newresult,生成函数:${__setProperty(newresult,${result},)}
步骤3:线程组A:添加–后置处理器 – BeanShell PostProcessor,设置BeanShell PostProcessor 内容为步骤2生成订单函数:${__setProperty(newresult,${result},)}
步骤4:线程组B:使用${__property(,,)}
函数来获取变量值,从而实现跨线程组。如:${__property(newresult)}
,可获取newresult值
实际用法: “merchantPoNo”: “${__property(newresult,)}”,
备注:这种引用关系存在执行的先后顺序,需要在测试计划中设置执行完一个之后,再执行另一个,否则会由于不同线程之间执行时间差,导致参数无法获取到。
另一个方法:将一个线程组的值获取后保存到本地,另一个线程组参数化后在本地获取值
语法说明:__setProperty()
函数设置全局变量 __P()
函数获取全局变量