如何不在 Jmeter 中附加旧的 Result.xml 文件?

How to not append the old Result.xml file in Jmeter?

在 linux 中的 Jmeter 中,我在重新 运行 时为每个测试套件创建 Result.xml 它被附加到旧的 Result.xml 但我想创建一个新的 Result.xml

为此,我需要在测试计划执行前 运行 rm -rf Result.xml

我在 Jmeter 中为此使用了 OS Process Sampler,如下所示:

3 OS Process Samplers

首先,我需要转到 Result.xml 和 Jmeter.jmx 文件所在的文件夹。但这条路不是固定的。

所以我使用 pushd . 来保存 Jmeter.jmx 文件在非 gui 模式下 运行 的当前路径(与 Result.xml 相同的目录当前的)。

然后popd去这个路径应该是Jmeter.jmx和Result.xml文件所在的文件夹。

然后删除 rm -rf Result.xml 应该删除 Result.xml 文件。

然后执行其余调用并在同一目录中创建一个新的 Result.xml 文件。

Execution sequence of the entire suite


此方法无法正常工作,因为测试执行的结果没有给出任何错误,但没有创建新的 Result.xml。这意味着即使 OS Process Sampler 被放置在测试套件之前,它也会删除新的 Result.xml 文件。因此,在创建或执行结果树之前,会生成 Result.xml。

我如何 运行 OS Process Sampler 删除旧的 Result.xml 文件?

您没有在 OS 示例中定义 Working directory。您需要在其中写入文件的路径Result.xml。如果不是,它将在 bin 文件夹中执行

Working directory Directory from which command will be executed, defaults > to folder referenced by "user.dir" System property

原因是您无法删除JMeter 为写入结果而打开的文件。但是,您可以使用配置如下的单个 OS Process Sampler 清理文件的内容:


总的来说,您的方法不是很好,因为使用 XML 输出格式并在测试期间启用侦听器 运行 违反 JMeter Best Practices as listeners cause massive IO overhead so I would recommend reconsidering your results saving approach and using -l command-line argument 指定结果文件位置而不是使用侦听器.