我正在尝试使用 jmeter java api 创建 jmeter jmx 文件。这就是我所做的,
- gui.jmx
使用 jmeter gui 应用程序创建一个参考 jmx 文件,我可以将其进行比较。对于测试计划,我仅添加一个线程组和线程组内的 java 采样器。所有值均为默认值。
- code.jmx
使用 jmeter java api,我创建一个包含测试计划、线程组和 java 采样器的 jmx 文件。所有值均按照情况 1 设置。
从代码创建 jmx 文件后,我注意到以下差异,
1)gui.jmx中的节点在code.jmx中替换为以下内容
<org.apache.jorphan.collections.HashTree>
虽然这不是问题,但在 GUI 保存时是否可以以某种方式生成以下标签
<hashTree>
2) 测试元素节点包含 gui.jmx 中的属性“guiClass”和“testClass”,例如
这些属性不是在 code.jmx 中生成的,我也没有找到任何 API 来显式设置它们-> 因此,生成的 code.jmx 不会在 jmeter gui 控制台中打开。这可能意味着生成的 jmx 只能在非控制台模式下使用。这是设计使然吗?有没有什么方法可以使用 jmeter api 通过代码添加这些属性? (不使用 DOM 作为 hack)
3)gui.jmx的xml结构如下,
<hashTree>
<TestPlan ...>
...
</TestPlan>
<hashTree>
<ThreadGroup ...>
...
</ThreadGroup>
**<hashTree/>**
</hashTree>
</hashTree>
请注意 HashTree 元素的嵌套。当它在 JMeter GUI 中打开时,元素相互嵌套。
code.jmx的xml结构如下,
<org.apache.jorphan.collections.HashTree>
<TestPlan ...>
...
</TestPlan>
**<org.apache.jorphan.collections.HashTree/>**
<ThreadGroup ...>
...
</ThreadGroup>
**<org.apache.jorphan.collections.HashTree/>**
</org.apache.jorphan.collections.HashTree>
请注意标签位置的差异。没有嵌套。他们都处于同一水平。为什么会出现这种情况。使用 jmx api 添加测试元素以便哈希树元素像第一种情况一样相互嵌套的正确方法是什么?