【问题标题】:How to maintain sessionid across different thread groups如何跨不同线程组维护 sessionid
【发布时间】:2014-03-17 10:05:06
【问题描述】:

我正在使用 JSON 进行 API 测试。
我的 Jmeter 的 TestPlan 如下所示:

Test Plan 
   Thread Group 1 (run once) 
      - Login 
   Thread Group 2 (I will run this multiple times) 
      - Do some opeartion 
   Thread Group 3 (run once) 
      - Logout 

我想将sessionid 从线程组 1 传递到线程组 2 和 3。

【问题讨论】:

  • 您是否尝试在测试计划级别而不是线程组级别添加 Cookie 管理器?

标签: json performance testing jmeter performance-testing


【解决方案1】:

要提取 sessionId 使用Regular Expression Extractor

【讨论】:

    【解决方案2】:

    您可以使用以下代码通过 Jmeter 中的 beanshell 后处理器侦听器元素 将值传递给另一个线程组

    保存变量的Beanshell代码

    import org.apache.jmeter.util.JMeterUtils;
    JMeterUtils.setProperty("propname", "value");
    

    用于从另一个线程组检索变量的 Beanshell 代码

    import org.apache.jmeter.util.JMeterUtils;
    vars.put("localvariable", JMeterUtils.getProperty("propname"));
    var testVar=vars.get("localvariable");
    log.info("@ NEXT THREAD GROUP value="+testVar); 
    

    使用Jmeter's getprperty(),setproperty() API 传递值的代码。您也可以使用具有线程间通信的 JMeter 插件。

    希望这会有所帮助。 :)

    【讨论】:

      【解决方案3】:

      How to use Beanshell 指南包含在不同线程组之间共享 cookie 的示例,向下滚动到 Advanced Examples 部分。

      如果您的“会话”假定基于 cookie 的会话,您需要执行以下操作:

      1. HTTP Cookie Manager 添加到测试计划(或每个线程组,如果您愿意)
      2. 告诉 Cookie 管理器将 cookie 保存为变量,方法是将 CookieManager.save.cookies 属性设置为位于 JMeter 安装的 /bin 文件夹下的 jmeter.properties 文件中的 true 或将其作为命令传递 -行参数如下

        jmeter -JCookieManager.save.cookies=true -n ... -t ... -l ... 
        

      【讨论】:

        【解决方案4】:

        另一种方法是只有一个线程组而不是三个,并将CookieManager 添加到您的线程组。有一个循环控制器来多次运行该操作。

        您的测试可以构造为:

        Test Plan 
          Thread Group
          - Cookie Manager
          - Login 
          - Loop Controller (run this multiple times) 
            - Do some operation  
          - Logout 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-01
          • 1970-01-01
          相关资源
          最近更新 更多