我尝试运行一个方案,通过一次登录来增加每个线程,通过业务操作循环一小时进行调整,并在注销时减少注销。
理想情况下,线程不应该一次注销,因此我想找到一种方法来为每个线程减少执行注销操作。
我尝试过使用步进和最终线程组,但是为了减速,线程正在停止。
此外,我尝试了以下场景:1)登录,2)运行时控制器按业务操作安排一小时,3)注销。但是,这会导致一旦达到一小时仍在执行业务操作的线程过早中止。
任何帮助,即使在beanshell中实现这一点,也将不胜感激。
答案 0 :(得分:1)
您可以使用TearDown Threadgroup。一旦你的测试结束,这将永远执行。
答案 1 :(得分:0)
您可以使用设置jmeter属性的线程组,让我们在预处理器或后处理器中调用属性" isRunning",然后该线程将测试操作设置为暂停测试的持续时间。暂停后设置属性" isRunning"为假。
当用户登录另一个线程组(您的测试用例)时,抓住" isRunning"属性并将值存储在线程的jmeter变量中。用户登录后,将您的业务案例放入while循环中,并使用" isRunning"创建jmeter变量。作为条件的财产。
获取" isRunning"的价值在业务案例结束时某处的属性并更新您的jmeter变量。将注销控制器放在while循环之外。当第一个线程组设置" isRunning"为false,其他线程中的while循环将完成执行用例并在看到while条件不再满足时注销。
如果使用任何类型的随机思考计时器和斜坡时间,由于斜坡时间抵消了用例的开始和随机思考时间,线程应该基本上逐步降低。
不确定这是否是解决此问题的最佳方式,但我需要做同样的事情,这被证明是一种可行的解决方法。