Jmeter 有没有办法在线程关闭之前执行示例?
例如,我有一个将数据插入数据库的测试计划,并且在连接上禁用了自动提交。每个线程产生自己的数据库连接。计划按计划运行(即我不知道样本数),我想在测试结束时提交所有插入的行。有没有办法做到这一点?
尝试基于某些 if 条件 wrt duration 或 iterationnum 运行提交示例例如:如果您应该运行 100 次迭代:具有条件的 If 控制器 - __groovy(${__iterationNum}==100)
应该有帮助。
好的,这可能不是最理想的,但可能是可行的
def 场景开始时间 = System.currentTimeMillis(); def timeLimit= ctx.getThreadGroup().getDuration()-10; //执行提交采样器的时间限制 vars.put("scenarioStartTime",scenarioStartTime.toString()); vars.put("timeLimit",timeLimit.toString());
${__groovy(System.currentTimeMillis()-Long.valueOf(vars.get("scenarioStartTime"))>=Long.valueOf(vars.get("timeLimit"))*1000)}
这种情况应该让您在测试持续时间结束之前执行提交采样器。
最简单的方法是为执行清理操作而设计的tearDown 线程组。
更难的方法是使用以下Groovy代码添加一个具有 1 个线程和 1 个迭代的单独线程组和 1 个JSR223 采样器:
class ShutdownListener implements Runnable {
@Override
public void run() {
//your code which needs to be executed before test ends
}
}
new ShutdownListener().run()