指定数量的线程失败后如何停止Jmeter测试
我有一个事务控制器,它在我的Jmeter测试计划中有一个http请求。事务名称和url来自CSV文件。最后,总执行分为5个不同的事务 测试计划: 测试计划 -螺纹组 -用户定义变量 总样本执行量为8000-10000。现在我想要的是,如果样本失败总数达到100,我的JMeter测试应该停止测试执行 我已经添加了用户定义的变量名“thread”和值“0”。我在Beanshell后处理器中添加了以下代码指定数量的线程失败后如何停止Jmeter测试,jmeter,beanshell,Jmeter,Beanshell,我有一个事务控制器,它在我的Jmeter测试计划中有一个http请求。事务名称和url来自CSV文件。最后,总执行分为5个不同的事务 测试计划: 测试计划 -螺纹组 -用户定义变量 总样本执行量为8000-10000。现在我想要的是,如果样本失败总数达到100,我的JMeter测试应该停止测试执行 我已经添加了用户定义的变量名“thread”和值“0”。我在Beanshell后处理器中添加了以下代码 int count= Integer.parseInt(vars.get("thread"));
int count= Integer.parseInt(vars.get("thread"));
if (prev.getErrorCount()==1){
count++;
System.out.println(count);
vars.put("thread",Integer.toString(count));
}
if (count==100){
System.out.println("Reached to max number of errors in load test, stopping test");
log.info ("Reached to max number of errors in load test, stopping test");
prev.setStopTestNow(true);
}
不知何故,代码没有按预期工作。当错误计数达到100时,Jmeter测试不会停止。当错误计数达到130时,测试停止。我不确定谁来修复上面的代码
有人能告诉我上面的代码有什么问题吗 变量特定于一个线程,而属性由所有线程共享 见:
- 测试启动时重置计数器的setupThreadGroup:
- 更新计数器的BeanShell后处理器:
你们有嵌套的示例吗?若我为单个用户运行它,并将错误计数限制为3,那个么它可以正常工作。测试在3次失败后停止。但当我为5个用户运行它时,最大错误计数为s3,测试在8次失败后停止。这是一个简单的脚本。没有嵌套样本。你试过使用道具而不是变量吗?没有。你能分享一些细节吗?道具是全局的,而变量是局部的线程。因为我自己无法尝试,所以我不会推荐它作为答案,但如果它对你有效,我会给出更好的解释。是的,我正在努力。但看起来我做错了什么。我已经添加了声明为属性,但仍然面临相同的问题字符串count1=props.setProperty(“abc”,“0”);String thread=props.getProperty(“abc”);int count=Integer.parseInt(vars.get(“线程”));if(prev.getErrorCount()==1){count++;System.out.println(count);vars.put(“thread”,Integer.toString(count));}if(count==3){System.out.println(“达到负载测试中的最大错误数,停止测试”);log.info(“达到负载测试中的最大错误数,停止测试”);prev.setStopTestNow(true);}非常感谢您的帮助。上面的解决方案我已经尝试过了,并且成功了:)。我感谢你的帮助。