Jmeter OS过程采样器

时间:2016-04-11 19:25:49

标签: testing jmeter automated-tests binaryfiles qa

我在Jmeter中使用4个OS Process Samplers来启动二进制文件。不能说的远不止这些。

当我运行测试时,第一个OS Sampler不起作用。而且,我认为它不会失败或成功,只需要太长时间。什么都没发生。当我停止测试时,错误是它失败了,因为它被中断(由我)。

当我第二次运行测试时,第一个OS Sampler会立即运行,但第二个OS Sampler会出现同样的问题。

在第三次测试中,OS采样器1和2快速工作,但第三次测试没有。

在第四次测试中,OS采样器1,2和3工作,但不是第4次。

最后,在第五次测试中,所有操作系统采样器都可以工作。

总而言之,每个采样器在运行之前都需要进行试运行。

为什么呢?请帮忙。

2 个答案:

答案 0 :(得分:2)

如果您使用OS Process Sampler来"启动"一个二进制文件我的期望是OS Process Sampler将等待直到二进制执行完成以记录执行时间,返回代码,任何输出等。这就是采样器的设计目的。

如果你需要在背景中发布一些东西""使用JMeter,你需要"作弊"一点点。至少有两个选项:

  1. 使用单独的Thread Groups。您可以将操作系统过程采样器放在单独的线程组中,其中包含1个虚拟用户和1个迭代。只要确保你有"连续运行线程组"在Test Plan级别框未选中

  2. 使用底层操作系统机制提供JMeter响应代码并输出它正在寻找。

    例如,将您的程序启动为:

    • Windows:cmd /c pushd path_to_your_binary_location && your binary
    • Linux / Unix:nohup /path/to/your/binary > /dev/null 2>&1 &
  3. 有关从JMeter脚本执行本地和远程命令的更多信息,请参阅How to Run External Commands and Programs Locally and Remotely from JMeter

答案 1 :(得分:0)

OS Sampler没有特别的理由以这种方式工作。 最有可能的问题来自底层的被调用代码。

你可以提供更多关于贝壳做什么的信息吗?