编辑
我的测试脚本的层次结构如下:
- test plan
- thread group 1
- http sampler 1-1
- thread group 2
- http sampler 2-1
- thread group 1
- http sampler 1-1
- thread group 3
- http sampler 3-1
我可以遍历所有的线程组。但是,我不能使用类似的模式来遍历http采样器。
下面是我的代码:
public static void main(String[] args) throws IOException {
// LOAD EXITISTING JMETER XML
JmxReader jmxReader = new JmxReader(".\\resources\\manually-configure.jmx");
HashTree testPlanTree = jmxReader.getTree();
SearchByClass testPlanSearcher = new SearchByClass(TestPlan.class);
SearchByClass threadGroupSearcher = new SearchByClass(ThreadGroup.class);
SearchByClass httpSamplerSearcher = new SearchByClass(HTTPSampler.class);
testPlanTree.traverse(testPlanSearcher);
Iterator testPlanIter = testPlanSearcher.getSearchResults().iterator();
while (testPlanIter.hasNext()) { // This loop will only execute once, due to we only have one test plan
TestPlan testPlan = (TestPlan) testPlanIter.next();
HashTree subTreeOfTestPlan = testPlanSearcher.getSubTree(testPlan);
subTreeOfTestPlan.traverse(threadGroupSearcher);
Iterator threadGroupIter = threadGroupSearcher.getSearchResults().iterator();
while(threadGroupIter.hasNext()) {
ThreadGroup threadGroup = (ThreadGroup) threadGroupIter.next();
HashTree subTreeOfThreadGroup = threadGroupSearcher.getSubTree(threadGroup);
subTreeOfThreadGroup.traverse(httpSamplerSearcher);
Iterator httpSamplerIter = httpSamplerSearcher.getSearchResults().iterator();
while (httpSamplerIter.hasNext()) {
httpSamplerIter.next();
System.out.println("I found a http sampler"); \\ ??? Nothing got printed
}
}
}
}
遍历http smapler的第三个内部循环不会执行。但是,每个线程组中至少有一个采样器。
1条答案
按热度按时间bkhjykvo1#
您基本上需要示例化ResponseAssertion并将其添加到任何需要的地方,例如添加到测试计划的根:
更多信息:Five Ways To Launch a JMeter Test without Using the JMeter GUI