码迷,mamicode.com
首页 > 编程语言 > 详细

Jmeter 跨线程组传递参数 之两种方法

时间:2017-06-17 23:59:32      阅读:1015      评论:0      收藏:0      [点我收藏+]

标签:time   csdn   height   添加   ica   processor   nbsp   net   需要   

 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子:

 

1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子:

 

1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

技术分享

 响应结果是如下

技术分享

 


 

 

2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

 技术分享

 

 

3.在接口B下添加BeanShell PreProcessor,并编写脚本

技术分享

 

 

4.在需要用到登录接口参数的地方,${  }  引用变量即可

技术分享

 

 

 

以上用Json Path Extractor 的地方均可以用正则表达式来完成,由于本人对于正则表达式理解起来实在有点费劲,所以就在jmeter下安装的插件

方法二:

1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

String X-Timestamp=bsh.args[0];

print (X-Timestamp);

${__setProperty(newstamp,${X-Timestamp},)};

String X-Signature=bsh.args[1];

print (X-Signature);

${__setProperty(newsig,${X-Signature},)};

String X-Nonce=bsh.args[2];

print (X-Nonce);

${__setProperty(newnonce,${X-Nonce},)};

技术分享

 此种是设置全局变量的形式
3.在接口B中直接引用全局变量即可   ${__P(newstamp,)}  
技术分享
 如此,接口B即可能获取到跨线程组登录接口的响应参数
==========================================
对比以上两种跨线程组传递参数的方法方法二更方便些,设置为全局变量后,其他只要用到登录接口参数的线程组,均可以直接引用,无需像方法一 一样添加Beanshell PreProcessor

 

 

 

 响应结果是如下
技术分享
 

 

2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

 技术分享

 

 

3.在接口B下添加BeanShell PreProcessor,并编写脚本

技术分享

 

 

4.在需要用到登录接口参数的地方,${  }  引用变量即可

技术分享

 

 

 

以上用Json Path Extractor 的地方均可以用正则表达式来完成,由于本人对于正则表达式理解起来实在有点费劲,所以就在jmeter下安装的插件

方法二:

1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

String X-Timestamp=bsh.args[0];

print (X-Timestamp);

${__setProperty(newstamp,${X-Timestamp},)};

String X-Signature=bsh.args[1];

print (X-Signature);

${__setProperty(newsig,${X-Signature},)};

String X-Nonce=bsh.args[2];

print (X-Nonce);

${__setProperty(newnonce,${X-Nonce},)};

技术分享

 此种是设置全局变量的形式
3.在接口B中直接引用全局变量即可   ${__P(newstamp,)}  
技术分享
 如此,接口B即可能获取到跨线程组登录接口的响应参数
==========================================
对比以上两种跨线程组传递参数的方法方法二更方便些,设置为全局变量后,其他只要用到登录接口参数的线程组,均可以直接引用,无需像方法一 一样添加Beanshell PreProcessor

 

Jmeter 跨线程组传递参数 之两种方法

标签:time   csdn   height   添加   ica   processor   nbsp   net   需要   

原文地址:http://www.cnblogs.com/superbears/p/7041723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!