Итак, после выполнения тестового прогона, у меня есть таблица агрегированного отчета, заполненная данными только что законченного плана тестирования. Теперь, когда я снова выполняю план тестирования, результаты добавляются к этим данным в таблице "Агрегированный отчет", но мне бы хотелось, чтобы данные таблицы были очищены до начала отображения результатов для текущего прогона. Любой способ сделать это?
Как очистить результаты в таблице "Агрегировать отчет" в JMeter автоматически при повторном выполнении того же плана тестирования?
Ответ 1
Jmeter не имеет флажка, чтобы сделать это автоматически.
Как правило, вам нужно очистить результаты с помощью CTRL + E (в окнах) или из меню файлов в меню RUN > CLEAR или RUN > CLEAR ALL
Возможно, вы сможете написать beanshell script, чтобы очищать результаты каждый раз, когда вы выполняете script.
http://www.javadocexamples.com/java_examples/org/apache/jmeter/samplers/SampleListener/
Ответ 2
Вот Beanshell script, который будет очищать результаты каждый раз, когда вы его выполняете:
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);
}
}
}
Чтобы использовать эту Beanshell script в вашем JMeter script:
1) Выберите корень node вашего JMeter Script и, используя меню мыши, добавьте настройку node:
Add / Threads (Users) / setup Thread Group
2) Выберите вновь созданный node и с помощью меню мыши добавьте script node:
Add / Samplers / Beanshell Sampler
3) Наконец, скопируйте и вставьте выше script в окно script.