首页 > 解决方案 > 通过 Jemeter 使用参数化命令运行 Executable 的多次执行

问题描述

所有,我想要一些帮助来解决这个问题。

问题:需要能够运行要处理的控制台应用程序,但无需等待该应用程序完成,根据要运行的线程数和时间等待执行其他应用程序

例如:

应用程序描述: someApp.exe - 此应用程序调用参数示例 someApp.exe -I someinputfile -d typeofserveice -r -i <some_input.json> -w 这将连接到服务并将其发布到服务并等待在超时前的设定等待时间内响应。

我想做的事:

1 个请求 5 个请求 - 同时 - 希望能够控制这个说每 15 秒产生该请求,直到您获得 5 个并发请求 8、16 等

我不想在尝试下一个请求之前等待一个请求完成……。

我从 OS Process Sampler 开始

这里的问题有两个方面:

  1. 我无法更改批处理文件中的请求 ID
  2. 它正在等待一个请求完成

我试过的

具有相同命令的多个线程组......每个不同的批处理文件......</p>

在此处输入图像描述

是否可以使用 Beanshell 或代替 Running Batch 我可以通过 OS PROCESS SAMPLE 传递批处理文件中的相同命令,我可以控制变量名称,例如 requestID 等。

cd C:\PFG_CLIENT_APP\SOMECLIENTAPPNAME\Debug ClientApp.exe -d appigee -r 61129361 -i test_svc_input.json -w 700

-r

标签: jmeterbeanshelljmeter-5.0

解决方案


我看不出这些问题是如何与 JMeter 相关联的,这都是关于 Windows、命令提示符和批处理文件的。

  1. I can’t change the Request ID in the batch file- 你不需要,只需在批处理文件中替换它61129361%1你就可以将它作为参数传递

    在此处输入图像描述

  2. It is waiting for one Request to finish您可以修改命令以包含START /W,在这种情况下,它将在新窗口中启动您的批处理文件并等待其终止。为了抑制在 JMeter 端的等待,您可以将超时设置为一个较低的值,例如 1 秒(或脚本/程序启动所需的任何时间)

    在此处输入图像描述

    超时将导致采样器失败,如果您希望它通过 - 添加一个响应断言作为此请求的子级并将其配置为:

    在此处输入图像描述

更多信息:如何从 JMeter 本地和远程运行外部命令和程序


推荐阅读