以编程方式在jmeter中添加/删除/修改当前运行的测试计划中的测试元素

时间:2014-02-14 05:48:42

标签: java jmeter

我正在开发一个JMeter插件,它接受相应请求和解析的响应。

我希望使用JMeter API在运行时(而不是在负载测试时)为JMeter测试计划添加/删除/修改测试元素(如HTTPsamplers,后处理器,可视化器等)。如何在JMeter中实现?

有没有人知道添加/删除/修改测试元素的JMeter API?

我已经搜索了我的问题并没有找到任何好的解决方案,并找到了使用xml解析器API修改jmx文件(JMeter测试计划文件)的解决方案,但它不会影响JMeter运行时的测试计划行为。

最终,我要做的是添加/删除/修改测试元素在当前运行的测试计划中(而非加载时)。


这可能吗?




在此先感谢.. :))

3 个答案:

答案 0 :(得分:1)

我很确定你不能这样做。最好先确定在哪种情况下,您将通过Web应用程序采用不同的路径。基于此,您可以使用Switch / Interleave / Random控制器组合测试计划,以便您可以采用不同的路径。

此外,您还可以使用后处理器来解析响应并编写自己的函数脚本,这样您就可以根据下一个请求建立输入。

我不明白为什么你必须在运行时制定测试计划?

答案 1 :(得分:0)

好的,所以没有办法做你要问的事。测试计划不能在运行时修改。

我会回到绘图板并重新构建测试。

如前所述,使用Post和Pre处理器。也可以使用IF控制器来定义测试所采用的不同路径。

如果您需要更多信息,请告诉我们!

祝你好运! 菲尔

答案 2 :(得分:0)

最后我得到了添加元素的答案,

GuiPackage guiInstance = GuiPackage.getInstance();

TestElement testElement = guiInstance.createTestElement("org.apache.jmeter.XXXX.XXX.GUI_CLASS");

testElement.setName("TEST ELEMENT NAME");

JMeterTreeNode parentNode = guiInstance.getCurrentNode();

JMeterTreeNode node = guiInstance.getTreeModel().addComponent(testElement, parentNode);

guiInstance.getMainFrame().getTree().setSelectionPath(new TreePath(node.getPath())); 
guiInstance.updateCurrentGui();

感谢您的帮助。