我在Jmeter中使用了4个操作系统进程采样器来启动二进制文件。不能说更多了。
当我运行测试时,第一个操作系统采样器不工作。我的意思是,它没有失败或成功,它只是花了太长的时间。什么也没有发生。当我停止测试时,错误是它失败了,因为它被中断(由我)。
当我第二次运行测试时,第一个操作系统采样器立即工作,但随后第二个操作系统采样器也发生了同样的问题。
在第三次测试尝试中,操作系统采样器1和2工作得很快,但第三次没有。
在第四次测试尝试中,操作系统采样器1、2和3工作,但第四次不工作。
最后,在第五次测试尝试中,所有操作系统采样器都正常工作。
总而言之,每个采样器在工作之前都需要进行一次试运行。
为什么?请帮帮忙。
2条答案
按热度按时间omqzjyyz1#
如果您使用OS Process Sampler来“启动”二进制文件,我的期望是OS Process Sampler将等待直到二进制文件执行完成,以记录执行时间、返回代码、任何输出等。这就是采样器的设计目的。
如果你需要用JMeter在后台启动一些东西,你需要稍微“作弊”一下。这里至少有两种选择:
1.使用单独的线程组。您可以将操作系统进程采样器放在具有1个虚拟用户和1个迭代的单独线程组下。只需确保在“测试计划”级别框中有“连续运行线程组”未选中
例如,以下列方式启动程序:
cmd /c pushd path_to_your_binary_location && your binary
nohup /path/to/your/binary > /dev/null 2>&1 &
有关从JMeter脚本执行本地和远程命令的更多信息,请参见How to Run External Commands and Programs Locally and Remotely from JMeter。
xxb16uws2#
OS Sampler以这种方式工作没有特别的原因。最有可能的问题是来自底层调用的代码。
你能提供更多关于你的shell的信息吗?