JMeter:全局变量___setProperty跨线程传参

JMeter:全局变量___setProperty跨线程传参,第1张

在日常接口测试或功能测试过程中,需要把获取到的响应结果,或卖孝提取到的某个参数,传递到下一个请求,或者是传递给另外一个线程的请求,这时候就涉及到全局变量的设置,及不同线程如何传参。

${__setProperty(变量名,值} 全局变量赋值

在使用过程中,需要把线程1某个请求返回来的结果,通过正则表达式提取后,设置为全局变量

1、添加--后置处理器 -- 正则表达式

2、使用正则表达式获取第一个线程组得到的响应信息 例如:result

3、添加--后置处理器 -- BeanShell PostProcessor

设置BeanShell PostProcessor ,内容如下:

4、在中轿稿线程组2中使用_p函数来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。

${__P(变量名)} 基本等同于${__property(变量名)}

因此通过__setProperty基本上可以完帆兄成全局变量的设置,及后续参数的调用。

5、这种引用关系存在执行的先后顺序,需要在测试计划中设置执行完一个之后,再执行另一个,否则会由于不同线程之间执行时间差,导致参数无法获取到。

JMeter 变量作用域局限于所属线程。这样设计是经过深思熟虑的,目的是让测试线程能够独立运转。有时候用户可能需要在不同线程间(可能属于罩桐同一个线程组,也可能不属于同一个线程组)传递变量。

其中一种方法就是使用属性。属性为所有JMeter线程所共享,因此当某个线程设置一个属性后,其他线程就可以读取更新后的值。

如果存在大量数据需要在线程间传递,那么可以考虑使用文件。例如,测试人员可以在一个线程中使用监听器,保存响应到文件(Save Responses to a file )或者 BeanShell PostProcessor 。而在另外一个线程中使用HTTP 采样器的“file: ”协议来读取文件,接着使用一个后置处理器或者BeanShell测试元件提取信息。

如物弯坦果在测试启动前测试人员就能获得测试数据,那么最好将数据保存到文件中,使闹冲用CSV Data set读取。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8283919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存