zoukankan      html  css  js  c++  java
  • Jmeter (二十八)多线程组间变量共享

    Jmeter 的线程组之间是相互独立的,各个线程组互不影响,所以线程组A中输出的参数,是无法直接在线程组B中被调用的。

    但是有时为了方便管理,我们可能是把各个接口单独存放在不同的线程组中。拿Cookie来说,虽然每一个线程组中我们也可以放在一个登陆请求,然后输出一个Cookie供次线程组使用,但这样就比较繁琐且冗余。此时我们就可以使用跨线程组传递参数来解决这样的问题;

      思路:将某一线程组内的变量通过“__setProperty”函数设置成jmeter全局变量,在另一个线程组中通过“${__P(parameters,)}”函数调用即可。

      说明:jmeter本身的内置函数中,“__setProperty ” (${__setProperty(newtoken,${cookieKey},)})函数可以把某参数的值设置成jmeter本身的内置属性,而jmeter的内置属性是所有线程组都可以调用的,是全局变量。各个线程组调用时,只需使用调用 

         jmeter属性的函数“${__P(parameters,)}”来调用相应的属性即可。

      1.在http请求下添加正则表达式提取器 :

      2.在请求下再添加Bean Shell PostProcessor(bean shell后置处理器) ;

        Parametres:把需要操作的参数传递给Bean Shell PostProcessor。前面提取出来的cookie的值,就把参数cookie写入

        Script:  string cookie=bsh.args[0];     把Bean Shell PostProcessor接收到的参数值,赋值给某参数。0是第一个值。

                     ${__setProperty(newcookie,${cookie},)};        调用函数__setProperty,把Bean Shell PostProcessor中的参数cookie的值赋值给newcookie,并设置newcookie为jmeter内置属性。

      

      3.其他线程组中引用----${__P(newcookie,)}来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。

      

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/Lydia25/p/9989230.html
Copyright © 2011-2022 走看看