Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jmeter启动aws cli命令_Jmeter_Aws Cli - Fatal编程技术网

从jmeter启动aws cli命令

从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

我试图使用来运行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 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