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属性,获取属性值,从而实现跨线程组,参数值传递。

      

  • 相关阅读:
    Java读书笔记
    b_aw_旅游计划(树的中心变形)
    b_lc_秋叶收集器(分类讨论dp+滚动数组优化)
    b_lg_涂色(从小区间做起,讨论s[l]和s[r]的关系)
    c_lc_早餐组合(排序+双指针)
    c_aw_鱼塘钓鱼(大根堆)
    b_pat_栈(2*multiset+stack)
    c_pat_推荐系统(set模拟)
    b_lg_时态同步(后序遍历统计每棵子树的最大高度)
    b_lc_统计不开心的朋友(预处理+模拟)
  • 原文地址:https://www.cnblogs.com/Lydia25/p/9989230.html
Copyright © 2011-2022 走看看