Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter 在完全停止测试之前,当我们达到1小时标记时,如何使测试停止(如逐渐退出)剩余事务?_Jmeter_Performance Testing - Fatal编程技术网

Jmeter 在完全停止测试之前,当我们达到1小时标记时,如何使测试停止(如逐渐退出)剩余事务?

Jmeter 在完全停止测试之前,当我们达到1小时标记时,如何使测试停止(如逐渐退出)剩余事务?,jmeter,performance-testing,Jmeter,Performance Testing,我的测试计划如下: 螺纹组 事务控制器1 事务控制器2 运行时控制器 事务控制器3 事务控制器4 事务控制器5 事务控制器6 控制器1和2(启动应用程序和登录)-只应发生一次 运行时控制器包含一些事务-这将迭代一段时间 持续1小时 控制器6(注销)-只能发生一次 所有采样器都在控制器内 我想在1小时内运行我的测试。问题是我什么时候开始 线程组1小时,运行时控制器事务1小时 控制器6无法执行。这完全取决于测试流的位置 持续时间达到1小时时达到 如何使测试停止(如逐渐退出),但执行 停止测试前达到1

我的测试计划如下: 螺纹组

事务控制器1 事务控制器2 运行时控制器 事务控制器3 事务控制器4 事务控制器5 事务控制器6 控制器1和2(启动应用程序和登录)-只应发生一次

运行时控制器包含一些事务-这将迭代一段时间 持续1小时

控制器6(注销)-只能发生一次

所有采样器都在控制器内

我想在1小时内运行我的测试。问题是我什么时候开始 线程组1小时,运行时控制器事务1小时 控制器6无法执行。这完全取决于测试流的位置 持续时间达到1小时时达到

如何使测试停止(如逐渐退出),但执行 停止测试前达到1小时标记时的剩余事务 完全

是否有一个控制器将等待剩余的事务完成 即使持续时间已达到1小时,是否在停止测试之前执行


非常感谢您的帮助。谢谢

我认为解决这个问题的唯一方法是手动控制斜坡下降

将线程组更改为仅循环一次,并删除持续时间限制

在您的第一个示例下放置一个带有此代码的BSF预处理器:

if (vars.get("start_time") == null) {
    vars.put("start_time", Date.now());
}
将运行时控制器替换为具有以下条件的While控制器:

${__javaScript(Date.now() < ${start_time} + 1000 * 60 * 60)}
${uuuJavaScript(Date.now()<${start\u time}+1000*60*60)}
如果你想在5分钟内逐渐放松,你需要做类似的事情(为了清晰起见,换行)

${\uuu javaScript(
Date.now()<${start\u time}+
1000 * 60 * 60 +
1000*60*5*${{uuuu threadNum}/
)}

如果你也有渐进式升级,你也需要考虑到这一点(或者如果你想要与升级相同的升级,你可以使用第一个版本)。

如果你使用道具而不是变量,那么你在升级时就不需要考虑升级(因为道具是全局的)
${__javaScript(
    Date.now() < ${start_time} +
        1000 * 60 * 60 +
        1000 * 60 * 5 * ${__threadNum} / <your total number of threads>
)}