我正在使用JMeter API动态创建JMeter jmx文件。我能够在TestPlan中添加ThreadGroup,在ThreadGroup中添加JavaSampler。但是,当我在Java Sampler中添加CSVDataSet元素时,它无法正确保存。
以下代码用于创建新的CSVDataSet元素
CSVDataSet csvDataSet = new CSVDataSet();
csvDataSet.setName("CSV Data Set");
csvDataSet.setComment("Sample CSV Data Set");
csvDataSet.setDelimiter(",");
csvDataSet.setFileEncoding("");
csvDataSet.setFilename("d:\\jmeter\\data.csv"); // variable
csvDataSet.setQuotedData(true);
csvDataSet.setRecycle(true);
csvDataSet.setShareMode(shareMode.all);
csvDataSet.setStopThread(false);
csvDataSet.setVariableNames("firstname, lastname, email"); // variable
csvDataSet.setEnabled(true);
使用SaveService保存时。saveTree,最终的jmx不包含所有设置的值。
<org.apache.jorphan.collections.HashTree>
<CSVDataSet testname="CSV Data Set Config" enabled="true">
<stringProp name="TestPlan.comments">Sample CSV Data Set Config</stringProp>
</CSVDataSet>
<org.apache.jorphan.collections.HashTree/>
如上所示,只添加了测试名称、enabled和注释。其余变量被完全忽略。
为了得到预期的所有值,需要设置什么吗?还是这是JMeter的bug?我使用的是2.11版本
基本代码是根据4.3节从以下链接http://blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui
为此,我添加了上面显示的代码。它的添加方式是,
testPlanTree.add("testPlan", testPlan);
testPlanTree.add("loopController", loopController);
testPlanTree.add("threadGroup", threadGroup);
testPlanTree.add("httpSampler", httpSampler);
testPlanTree.add("csvDataSet", csvDataSet);
SaveService
.saveTree(testPlanTree, new FileOutputStream("d:\\test.jmx"));
CSVDataSet块的输出如上所示。
这显然不是JMeter中的错误,否则无法保存CSV数据集。
这可能是您构建HashTree的方式中的一个问题,但除非您显示完整代码,否则您无法获得帮助。
顺便说一句,正如我在之前的回答中所说,您试图根据输入参数构建不同的测试并不是个好主意,恕我直言,对于即将推出的JMeter版本,这种方法将非常脆弱。
JMeter提供了您应该遵循的方法。
在查看JMeter源代码后,似乎所有属性都是使用setProperty函数而不是单个设置器函数设置的。因此,放置以下代码可以正确创建 CSV 数据集元素。
csvDataSet.setProperty("delimiter", ",");
csvDataSet.setProperty("fileEncoding", "");
csvDataSet.setProperty("filename", "d:\\data.csv");
csvDataSet.setProperty("quotedData", true);
csvDataSet.setProperty("recycle", true);
csvDataSet.setProperty("shareMode", "shareMode.all");
csvDataSet.setProperty("stopThread", false);
csvDataSet.setProperty("variableNames", "var1, var2, var3");
不知道为什么代码中没有使用setter,但这似乎是现在要走的路
我试图使用jmeter java API创建一个jmeter jmx文件。这就是我所做的, gui.jmx 使用jmeter gui应用程序创建一个引用jmx文件,我可以对其进行比较。在测试计划中,我只添加了一个线程组和线程组中的java采样器。所有值都是默认值。 null 2)测试元素节点在gui.jmx中包含属性“gui class”和“Test class”。例如,这些属性不是在code.j
JMeter包含各种相互关联但为不同目的而设计的元素。在开始使用JMeter之前,最好先了解一下JMeter的一些主要元素,并详细说明。 注意:测试计划包含至少一个线程组。 以下是JMeter的一些主要组件: 测试计划(Test Plan) 线程组(Thread Group) 控制器(Controllers) 监听器(Listeners) 计时器(Timers) 配置元素(Configuratio
我想以编程方式从一组动态的URL和表单数据生成基本的Jmetm测试计划(不使用Jmetm GUI手动)。我可以使用Jmetm API来做到这一点吗? 它已经在某个地方解释过了吗? 我只需要点开始。 当然,我可以对测试计划XML格式进行逆向工程,然后编写我自己的自定义测试计划生成器,但这很容易出错,每当格式发生变化时,我的生成器都需要更新。
主要内容:测试计划注意事项 -可以将测试计划可视化为用于运行测试的JMeter脚本。 测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。 测试计划包含执行脚本的所有步骤。 测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行。 下图给出了测试计划的目录级别。 测试计划注意事项 - 在运行整个测试计划之前,应保存测试计划。 JMeter文件或测试计划以扩
在本节中,我们将学习如何编写一个简单的测试计划来测试Java Messaging Service(JMS)。 出于测试目的,我们使用Apache ActiveMQ。有各种JMS服务器,如:glassfish3,IBM WebSphere MQ(以前称为MQSeries),Tibco等。 在继续本节之前,请按照以下简单步骤在系统上安装Apache ActiveMQ。 从以下链接下载最新版本的Apac
主要内容:创建JMeter测试计划,添加采样器,添加监听器,保存并执行测试计划,验证输出在本节中,我们将学习如何创建测试FTP站点的基本测试计划。 为了演示测试目的,我们将使用公共可用的FTP位置,可以使用它来测试文件的下载。 您可以使用市场上现有的任何可用的演示FTP位置。我们使用URL下的FTP位置: https://dlptest.com/ftp-test/ 下图显示了上述URL时打开的网页。 单击FTP测试部分下的URL: ftp://ftp.dlptest.com/ 。 它