【发布时间】:2011-06-21 10:00:15
【问题描述】:
所以在执行测试运行后,我在汇总报告的表格中填满了刚刚完成运行的测试计划的数据。现在,当我再次执行测试计划时,结果将添加到聚合报告表中的此数据中,但我希望在开始显示当前运行的结果之前清理表数据。有什么办法吗?
【问题讨论】:
-
你得到一个可行的答案了吗?
标签: jmeter load-testing stress-testing
所以在执行测试运行后,我在汇总报告的表格中填满了刚刚完成运行的测试计划的数据。现在,当我再次执行测试计划时,结果将添加到聚合报告表中的此数据中,但我希望在开始显示当前运行的结果之前清理表数据。有什么办法吗?
【问题讨论】:
标签: jmeter load-testing stress-testing
Jmeter 没有自动执行此操作的标志。
通常,您必须使用 CTRL+E(在 Windows 中)或从文件菜单中的 RUN > CLEAR 或 RUN > CLEAR ALL 下清除结果
您也许可以编写一个 beanshell 脚本来在每次执行脚本时清除结果。
http://www.javadocexamples.com/java_examples/org/apache/jmeter/samplers/SampleListener/
【讨论】:
这是一个 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 脚本的根节点,然后使用鼠标菜单添加一个设置节点:
Add / Threads (Users) / setup Thread Group2) 选择新创建的节点,并使用鼠标菜单,添加一个脚本节点:
Add / Samplers / Beanshell Sampler3) 最后,将上述脚本复制并粘贴到脚本窗口中。
【讨论】:
注意:下面给出了通过 GUI 函数实现此目的的手动过程。
Clear 选项位于Run 菜单下。
| Function | Windows Keyboard Shortcut | macOS Keyboard Shortcut |
|---|---|---|
| Clear | CTRL+SHIFT+E | ⌘+SHIFT+E |
| Clear All | CTRL+E | ⌘+E |
【讨论】: