【问题标题】:Jmeter OS Process SamplerJmeter OS 进程采样器
【发布时间】:2016-04-11 19:25:49
【问题描述】:

我在 Jmeter 中使用 4 个操作系统进程采样器来启动二进制文件。真的不能说更多。

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

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

在第三次测试中,OS Sampler 1 和 2 运行很快,但第三次没有。

在第四次测试中,OS 采样器 1、2 和 3 可以正常工作,但第 4 次就不行了。

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

总而言之,每个 Sampler 都需要试运行才能工作。

为什么?请帮忙。

【问题讨论】:

  • 嗨,对答案有任何反馈吗?谢谢

标签: testing jmeter automated-tests binaryfiles qa


【解决方案1】:

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

如果您需要使用 JMeter “在后台”启动某些东西,则需要稍微“作弊”。至少有 2 个选项:

  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 &

有关从 JMeter 脚本执行本地和远程命令的更多信息,请参阅 How to Run External Commands and Programs Locally and Remotely from JMeter

【讨论】:

    【解决方案2】:

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

    你能提供更多关于你的shell做什么的信息吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多