Json 如何跨不同线程组维护sessionid
我正在使用JSON进行API测试。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
我的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管理器?