${__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读取。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)