如何在不使用 shell 脚本作为 OS Process Sampler - Jmeter 的 arg 的情况下获取进程 ID?

How to get the process ID without using a shell script as arg to OS Process Sampler - Jmeter?

我需要使用 JMeter 获取后台进程的 ID。

我正在寻找以下输出:

ps -ef | grep [b]ackend.js | awk '{ print  }'

我不能使用 shell 脚本,因为我不希望脚本成为依赖项;有没有办法通过 OS Process Sampler 或其他插件在 JMeter 中执行上述命令?

根据 manual page

,我建议使用 Bash shell 的 -c 选项

-c

Read and execute commands from the first non-option argument command_string, then exit. If there are arguments after the command_string, the first argument is assigned to [=14=] and any remaining arguments are assigned to the positional parameters. The assignment to [=14=] sets the name of the shell, which is used in warning and error messages.

所以:

  1. 添加OS Process Sampler
  2. 配置如下:

    • 命令:/bin/bash
    • 第一个命令参数:-c
    • 第二个命令参数:ps -ef | grep [b]ackend.js | awk '{ print }'

有关从 JMeter 测试启动第 3 方程序的更多信息,请参阅 How to Run External Commands and Programs Locally and Remotely from JMeter 文章。