我试图使用OS进程采样器在JMeter中运行aws cli命令。我将在JMeter和aws cli都将被安装的坞上运行这个程序。但是在我这样做之前,我尝试在我的mac上本地运行这个命令,但是到目前为止我还无法让aws命令运行。
在我的本地终端上运行:A.AWS--版本b. bash j.sh (aws )都返回aws /2.0.8 Python/3.7.4达尔文/18.7.0 botocore/2.0.0dev12
这证实aws cli在path中是可用的,可以在全球范围内访问。
但是,当我从OS进程采样器运行相同的命令时,我尝试了如下: a。
Working Directory: /Users/tester/Downloads/apache-jmeter-5.1.1/bin
Environment: {}
Executing: bash aws --version

答复:bash: aws --version: No such file or directory
b.
Working Directory: /Users/tester
Environment: {}
Executing: bash j.sh
where j.sh just contains the aws --version command

答复:j.sh: line 1: aws: command not found
我遗漏了什么?
发布于 2020-04-22 17:51:33
谢谢德米特里和瓦迪姆对我问题的答复。不幸的是,这两个示例都适用于Windows,在Windows中,OS进程采样器的工作方式与Mac不同。我还让它在Mac上使用操作系统进程采样器进行了很少的调整:

Mac的关键区别在于j测量仪需要安装aws cli的位置。
/usr/local/bin/aws我找到了这个命令
which aws我还决定使用Beanshell采样器和日志一起来完成这个任务,这将使我能够更好地编写和控制我的其他需求。以下是我的参考代码:
try {
Process p = Runtime.getRuntime().exec("/usr/local/bin/aws --version");
p.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder logCommandOutput = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
logCommandOutput.append(line);
} in .close();
log.info("Output: " + logCommandOutput.toString());
} catch (Exception e) {
log.error("exception" + e);
}希望这能帮助那些试图做同样事情的人。
发布于 2021-01-20 20:31:39
对于那些需要在JMeter 上运行AWS命令的用户,使用(我使用10)。下面是我的设置。

最初的命令是:
$ aws dynamodb list-tables结果:

发布于 2020-04-22 10:57:51
我相信您需要按照以下方式配置您的OS进程采样器:
/bin/bash-caws --version
演示:

来自巴什手册页
如果存在
-c选项,则从第一个非选项参数command_string读取命令。如果在command_string之后有参数,则第一个参数分配给$0,其余的参数都分配给位置参数。赋值为$0设置shell的名称,该名称用于警告和错误消息。
https://stackoverflow.com/questions/61356605
复制相似问题