在我的java代码中,如何访问存储在JMeter测试计划(jmx文件)中的值?特别是尝试获取ThreadGroup.num_threads,这样我的测试代码就可以知道在测试中使用了多少线程。
谢谢你的回复。下面是我最终使用的代码:
int testThreadCount = 0;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document testPlanFile = builder.parse(new File("path/to/testplan.jmx"));
NodeList nodes = testPlanFile.getElementsByTagName("stringProp");
for (int i = 0; i < nodes.getLength(); ++i)
{
Node node = nodes.item(i);
Element element = (Element)node;
String propName = element.getAttribute("name");
if (propName.equals("ThreadGroup.num_threads"))
{
testThreadCount = Integer.parseInt(element.getChildNodes().item(0).getNodeValue());
break;
}
}发布于 2015-11-25 01:17:11
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = builderFactory.newDocumentBuilder();Document xmlDocument =builder.parse(新建文件(“/DocumentBuilderFactory/to/test.jmx”));XPath表达式= XPathFactory.newInstance().newXPath();String expression =test.jmx NodeList = (NodeList) test.jmx XPathConstants.NODESET);for (int i= 0;i< matches.getLength();){System.out.println(“线程组”+ (i + 1) +“users =”+ matches.item(i).getTextContent());i++;}
JMeterUtils.loadJMeterProperties("/path/to/jmeter.properties");JMeterUtils.setJMeterHome("/path/to/ jmeter ");JMeterUtils.initLogging();JMeterUtils.initLocale();SaveService.loadProperties();StandardJMeterEngine jmeter= StandardJMeterEngine();HashTree testPlanTree =SaveService.loadTree(新建文件(“/path/to/test.jmx”));JMeterTreeModel treeModel =新建JMeterTreeModel(新建对象());JMeterTreeNode根= (JMeterTreeNode) treeModel.getRoot();treeModel.addSubTree(testPlanTree,根);SearchByClass = new ();testPlanTree.traverse(threadGroups);集合threadGroupsRes = threadGroups.getSearchResults();对于(ThreadGroup threadGroup : threadGroupsRes) { }
发布于 2015-11-24 07:39:57
在扩展AbstractJavaSamplerClient的自定义java采样器中,您可以访问JavaSamplerContext对象,该对象公开了一组运行时属性
@Override
public SampleResult runTest(JavaSamplerContext context) {
...
// get parameters:
String urlString = context.getParameter( "paramName" );
...
}您可以在运行时从JMeterContextService获取线程信息。当前活动线程数为
JMeterContextService.getNumberOfThreads()https://stackoverflow.com/questions/33880607
复制相似问题