如何从APACHE JMETER执行Linux命令或shell脚本

时间:2015-05-12 20:40:23

标签: jmeter

如何从APACHE JMETER

执行Linux命令或shell脚本

有谁知道如何从Jmeter执行linux命令? 我在网上找到了这个链接http://www.technix.in/execute-linux-command-shell-script-apache-jmeter/,我尝试了这些步骤,但是没有用。我无法看到SSH采样器。 如果有人从Jmeter运行shell脚本取得任何成功,请分享。 提前致谢

4 个答案:

答案 0 :(得分:0)

看一下为此完成的OS Process Sampler,并在核心中提供:

答案 1 :(得分:0)

如果需要在远程系统上执行命令,请执行以下步骤:

  1. 下载JSch.jar - 从Java语言提供SSH和SCP协议操作的库,并将其放在JMeter安装的/ lib文件夹中
  2. 下载groovy-all.jar - 对Jmeter的Groovy脚本引擎支持并将其放到/ lib文件夹中
  3. 重新启动JMeter以选择库
  4. JSR223 Sampler添加到您的测试计划中,然后选择" groovy"来自"语言"下拉
  5. 按照Exec.java Jsch教程中的示例代码实现您自己的逻辑。
  6. 您还可以参考以下代码段,该代码段在远程* nix系统上执行ls命令并返回命令执行结果。请确保您提供有效的usernamehostnamepassword,以便采样器可以正常工作

    import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    
    JSch jSch = new JSch();
    Session session = jSch.getSession("username", "hostname", 22);
    session.setConfig("StrictHostKeyChecking", "no");
    session.setPassword("password");
    session.connect();
    
    Channel channel = session.openChannel("exec");
    
    String command = "ls";
    ((ChannelExec) channel).setCommand(command);
    channel.setInputStream(null);
    ((ChannelExec) channel).setErrStream(System.err);
    InputStream in = channel.getInputStream();
    
    channel.connect();
    StringBuilder rv = new StringBuilder();
    rv.append("New system date: ");
    byte[] tmp = new byte[1024];
    while (true) {
      while (in.available() > 0) {
          int i = in.read(tmp, 0, 1024);
          if (i < 0) break;
          rv.append(new String(tmp, 0, i));
      }
      if (channel.isClosed()) {
          break;
      }
      try {
          Thread.sleep(100);
      } catch (Exception ee) {
          ee.printStackTrace();
      }
    }
    in.close();
    channel.disconnect();
    session.disconnect();        
    SampleResult.setResponseData(rv.toString().getBytes());
    

    有关Groovy脚本引擎安装和最佳脚本实践的详细信息,请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!

答案 2 :(得分:0)

你可以在jmeter里面使用Beanshell脚本,那么你可以有类似的东西:

[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L] 

答案 3 :(得分:0)

here 关于执行jar文件的答案。但对其他OS命令也一样。

  1. 使用OS_Process_Sampler
  2. 使用OS shell填写字段命令,例如/ bin / bash或analogue。
  3. 使用 -c
  4. 设置第一个参数
  5. 使用您命令
  6. 设置下一个参数
  7. 准备执行的采样器:)