2011-02-04 61 views
31

因此,在执行测试运行后,我将聚合报告的表格填入刚完成运行的测试计划的数据。现在,当我再次执行测试计划时,结果将被添加到Aggregate Report表中的这些数据中,但我希望在开始显示当前运行结果之前清理表数据。任何方式来做到这一点?如何在再次执行相同的测试计划时自动清除JMeter中的聚合报告表中的结果?

+0

你有没有得到一个可行的答案? – BlackGaff 2011-02-14 15:52:41

回答

49

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

一般情况下,你要清楚用CTRL + E的结果(Windows)或从文件菜单,下运行>清除或RUN>全部清除

你也许可以写一个BeanShell的脚本清除每次执行脚本时的结果。

http://www.javadocexamples.com/java_examples/org/apache/jmeter/samplers/SampleListener/

+0

这没有奏效。 Ctrl + C是复制命令的快捷方式。而且我没有看到一个菜单选项可以从文件菜单中清除它。 – Srikanth 2011-02-07 05:55:26

+0

我的错误...应该是CTRL + E。在文件菜单中,它是运行>清除或运行>清除全部 – BlackGaff 2011-02-07 15:50:06

8

这里是一个BeanShell的脚本,将每次清除结果你执行:

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); 
     } 
    } 
} 

要在JMeter的脚本使用BeanShell的脚本:

1)选择您的JMeter Script的根节点,然后使用鼠标菜单DD的设置节点:

Add/Threads (Users)/setup Thread Group 

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

Add/Samplers/Beanshell Sampler 

3)最后,将上面的脚本复制并粘贴到脚本窗口中。

相关问题