首页 > 解决方案 > 控制 Jmeter 中的特定代码块以停止和启动新线程?

问题描述

线程数:1000

1. Validate username
2. Validate Password
If controller
    3. User Info
    4. Settings
    5. Payments
    etc...
    20. Logout

现在,如果验证密码失败,则后续运行将不会运行..但仍然计算线程..考虑 800 成功,200 登录失败仍然显示 Active 1000 Started: 1000。

我不想要验证密码失败的线程,如何停止失败的线程并获取新线程..

在线程组中,有设置“ Action to be taken after a sampler error

我选择了Start Next Thread Loop。因此,如果验证登录失败,则应启动新线程。但如果 if 循环块失败,它也会创建新线程。那是实际的应用程序失败。

我想在验证用户名和密码调用失败时停止当前线程启动新线程but if it is failed on the if block it should report error not stop and start new thread.

可能吗?因为线程组控制整个测试组?

标签: jmeter

解决方案


您可以在JSR223 组件中创建新线程,但请谨慎使用

ctx.getThreadGroup().addNewThread( 0, ctx.getEngine() )

您可以使用停止操作使用测试操作在特定情况下停止:

“停止”操作在完成任何正在进行的样本后停止线程或测试。“立即停止”操作停止测试,无需等待样品完成


推荐阅读