Json 如何跨不同线程组维护sessionid

Json 如何跨不同线程组维护sessionid,json,performance,testing,jmeter,performance-testing,Json,Performance,Testing,Jmeter,Performance Testing,我正在使用JSON进行API测试。 我的Jmeter的测试计划如下所示: 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。要提取s

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

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。

要提取sessionid,请使用您可以使用以下代码,使用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的getprperty()、setproperty()API来传递值。还可以使用JMeter插件进行线程间通信

希望这会有所帮助。:)

指南包含在不同线程组之间共享cookie的示例,请向下滚动至
高级示例部分

如果“会话”采用基于cookie的会话,则需要执行以下操作:

  • 添加到测试计划(或每个线程组,如果您愿意)
  • 通过在jmeter.properties文件(位于jmeter安装的/bin文件夹下)中将
    CookieManager.save.cookies
    属性设置为
    true
    ,或将其作为命令行参数传递,告诉Cookie管理器将Cookie另存为变量,如下所示

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

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

    您的测试可以按以下方式组织:

    测试计划
    螺纹组
    -Cookie管理器
    -登录
    -循环控制器(多次运行)
    -做些手术
    -注销
    
    您是否尝试在测试计划级别而不是线程组添加Cookie管理器?