当再次执行相同的测试计划时,如何在JMeter中自动清除聚合报告表中的结果?

当再次执行相同的测试计划时,如何在JMeter中自动清除聚合报告表中的结果?,jmeter,load-testing,stress-testing,Jmeter,Load Testing,Stress Testing,因此,在执行测试运行之后,我会在聚合报告的表中填充刚刚完成运行的测试计划的数据。现在,当我再次执行测试计划时,结果将被添加到聚合报告表中的数据中,但我希望在开始显示当前运行的结果之前清理表数据。有什么方法可以做到这一点吗?Jmeter没有自动执行此操作的标志 通常,您必须在windows中使用CTRL+E清除结果,或从“文件”菜单的“运行>清除”或“运行>全部清除”下清除结果 您可以编写beanshell脚本,以便在每次执行脚本时清除结果 下面是一个Beanshell脚本,它将在每次执行时清除结

因此,在执行测试运行之后,我会在聚合报告的表中填充刚刚完成运行的测试计划的数据。现在,当我再次执行测试计划时,结果将被添加到聚合报告表中的数据中,但我希望在开始显示当前运行的结果之前清理表数据。有什么方法可以做到这一点吗?

Jmeter没有自动执行此操作的标志

通常,您必须在windows中使用CTRL+E清除结果,或从“文件”菜单的“运行>清除”或“运行>全部清除”下清除结果

您可以编写beanshell脚本,以便在每次执行脚本时清除结果

下面是一个Beanshell脚本,它将在每次执行时清除结果:

要在JMeter脚本中使用此Beanshell脚本,请执行以下操作:

1选择JMeter脚本的根节点,然后使用鼠标菜单添加设置节点:

2选择新创建的节点,并使用鼠标菜单添加脚本节点:

3最后,将上述脚本复制粘贴到脚本窗口中


“运行”菜单中提供了“清除”选项

Windows快捷方式:

清除:CTRL+SHIFT+E 全部清除:CTRL+E
那没用。Ctrl+C是复制命令的快捷方式。我也看不到从文件菜单中清除它的菜单选项。我的错误…应该是CTRL+E。在文件菜单中,它是运行>清除或运行>清除所有工作。对不起,我迟了答复。事实上,我真是太蠢了。我不明白我怎么会漏掉这么明显的东西。你说Jmeter没有自动完成这项工作的标志是什么意思?或者换句话说,这个标志具体在哪里?你得到了一个可行的答案吗?如果Jmeter无头运行,这个非常有用的beanshell将失败,因为gui组件不存在。但是,如果将此beanshell包装在if控制器中,则可以检查仅从命令行存在的变量,然后可以在测试中保留脚本,无论是gui还是headless。
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.JMeterGUIComponent;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.samplers.Clearable;

log.info("Clearing All ...");

guiPackage = GuiPackage.getInstance();

guiPackage.getMainFrame().clearData();
for (JMeterTreeNode node : guiPackage.getTreeModel().getNodesOfType(Clearable.class)) {
    JMeterGUIComponent guiComp = guiPackage.getGui(node.getTestElement());
    if (guiComp instanceof Clearable){
        Clearable item = (Clearable) guiComp;
        try {
            item.clearData();
        } catch (Exception ex) {
            log.error("Can't clear: "+node+" "+guiComp, ex);
        }
    }
}
   Add / Threads (Users) / setup Thread Group
   Add / Samplers / Beanshell Sampler