12

我有一个简单的水槽设置,带有一个 HTTP 源和一个将 POST 请求有效负载写入文件的接收器。(此完整设置在 Linux 机器上)。

之后,我的任务是对设置进行性能测试。所以我决定使用JMeter(这是第一次,我正在使用它)。

所以我在我的 windows 机器上创建了一个测试计划(使用 GUI),然后将它复制到 linux 环境中的 jmeter/bin 文件夹中。

当我尝试运行它时 -
java -jar ApacheJMeter.jar -n -t flume_http_test.jmx

我收到此错误错误 - jmeter.JMeter:NonGUIDriver java.lang.RuntimeException 中的错误:找不到 TestPlan 类!

有什么建议么?

提前致谢

4

7 回答 7

13

我今天在使用 JMeter 2.13 时遇到了同样的问题。当我使用菜单中的此条目保存它时,我收到了一个在非 GUI 模式下接受的 jmx 文件:

在此处输入图像描述

于 2015-07-29T12:35:27.903 回答
3

我也有同样的错误信息。创建测试计划并在 Windows 机器上以 GUI 模式成功试运行后,我将 JMX 文件上传到 Linux 服务器以在命令行模式下运行。

经过大量搜索和弄乱后,我发现这是因为我将脚本的测试计划名称保留为默认的“测试计划”!?例如,当我将其更改为“我的测试计划”,然后保存并上传到 Linux 服务器时,它运行成功。

于 2015-10-16T09:44:16.053 回答
3
  1. 在 GUI 模式下打开 JMeter,打开您创建的 .jmx 测试计划或创建新的测试计划,尝试在 gui 模式下运行测试计划。它应该在尝试运行之前提示您保存,保存 .jmx。
  2. 退出 GUI 模式。
  3. 打开命令提示符,导航到 jmeter 文件夹中的 bin 文件
  4. 输入 jmeter -n -t "C:/Username/location of the .jmx file" 命令这应该按预期运行而不会出现错误。

这就是我解决问题的方法。

于 2019-06-20T23:16:08.183 回答
2

可能您错误地保存了测试计划。尝试打开你的 flume_http_test.jmx 我猜它只包含 http 请求元素而没有测试计划元素。尝试使用选择的测试计划元素保存您的测试。 http://joxi.ru/E2pvg4GSeLblrY

于 2015-03-31T10:09:20.230 回答
2

在 testplan.jmx 文件中包含:

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.8" jmeter="2.13 r1665067">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
    ...
    </TestPlan>

其中包含预定义的变量。但有时当您像“另存为”一样保存 testplan.jmx 时,可能会错过此部分。对于我的情况,@Marged 的​​回答帮助我:“文件 > 将测试计划另存为...”

于 2015-11-10T16:50:02.383 回答
0

使用 bin/jmeter 代替命令行:

于 2013-09-13T20:00:19.003 回答
0

用户@Marged 在.jmx 上执行“另存为”的建议也对我有用。我在“另存为”之前和之后对 .jmx 进行了比较,以显示使这项工作正常进行的确切更改。见下图。实际上,我仅通过在图像中添加第二个更改来使其工作。具体来说,我添加了以下行作为 .jmx's 的最后一个子标记<ThreadGroup>

<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>

kdiff 显示了之后的具体变化

于 2020-04-12T06:09:27.127 回答