从jmeter启动aws cli命令
我试图使用来运行JMeter中的从jmeter启动aws cli命令,jmeter,aws-cli,Jmeter,Aws Cli,我试图使用来运行JMeter中的aws cli命令。 我将在docker上运行此程序,其中将安装JMeter和aws cli。但在此之前,我尝试在mac上本地运行此命令,但到目前为止无法运行aws命令 在eg的本地终端上,我可以运行: A.aws——版本 Bbash j.sh(aws--版本) 两者都返回aws cli/2.0.8 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0dev12 这确认aws cli在路径中可用,以便全局访问 但是,当我从OS Pro
aws cli
命令。
我将在docker上运行此程序,其中将安装JMeter和aws cli。但在此之前,我尝试在mac上本地运行此命令,但到目前为止无法运行aws命令
在eg的本地终端上,我可以运行:
A.aws——版本
Bbash j.sh(aws--版本)
两者都返回aws cli/2.0.8 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0dev12
这确认aws cli在路径中可用,以便全局访问
但是,当我从OS Process sampler运行相同的命令时,我尝试了以下操作:
a
响应:bash:aws——版本:没有这样的文件或目录
b
响应:j.sh:第1行:未找到aws:命令
我缺少什么?我认为您需要按照以下方式配置您的:
- 命令:
/bin/bash
- 参数1:
-c
- 参数2:
aws--版本
-c
如果存在-c选项,则从中读取命令
第一个非选项参数命令\u字符串。如果有
参数在命令字符串之后,第一个参数是
分配给$0,其余参数都分配给
位置参数。对$0的赋值将设置
shell的名称,用于警告和错误
信息
更多信息:要在JMeter中运行aws cli命令:
命令
字段中输入命令:aws
李>
命令参数中
添加所需的任何参数,例如:--version
李>
aws cli/2.0.0 Python/3.7.5 Windows/10 botocore/2.0.0dev4
感谢德米特里和瓦迪姆对我的问题的回答。不幸的是,这两个示例都适用于Windows,在Windows中,OS Process sampler的工作方式与Mac不同。我还使用Mac上的OS Process Sampler对其进行了一些调整: Mac的关键区别在于jmeter需要安装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);
}
希望这能帮助那些尝试做同样事情的人。对于那些需要在Windows上运行JMeter中的AWS CLI v2命令的人(我使用10)。 下面是我的设置 原始命令是:
$ aws dynamodb list-tables
结果:
谢谢Dmitri,这可能会在Windows上起作用。在Mac上,我无法让它工作。Mac上的工作原理如下:Command:/usr/local/bin/aws Command parameters:--version您也在docker中测试过吗?您将在Docker中使用什么操作系统来运行此测试?嗨,瓦迪姆,我将使用debian linux。我在docker上运行了测试,没有发现任何错误。但是需要整理容器上的aws配置文件,以尝试更多的aws命令,看看它是否真的有效。感谢Vadim帮助编辑我的问题。
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);
}
$ aws dynamodb list-tables