在LoadRunner中使用SSH连接Linux

 

今天发现一个非常好的Jar包,纯Java实现SSH连接: jsch-0.1.41.jar
    只要能向Linux服务器发送命令并拿到其返回值,那么可以做的事情就有很多了。譬如直接使用Shell、写好一个脚本放在服务器上让你调。
    下面为LoadRunner的JavaVuser代码,收集Linux系统的系统负载,并生成自定义图表:
import lrapi.*;
import com.jcraft.jsch.*;
import java.io.InputStream;
   
public class Actions
{
    String mUserName = "higkoo";
    String mHostName = "192.168.10.31";
    String mPwd = "123456";
    String mCommand = "uptime | awk -F\" \" '{print $12}'";

        public int init() throws Throwable {
            return 0;
        }//end of init
        
        public int action() throws Throwable {
        try{
          JSch jsch=new JSch();
          Session session=jsch.getSession(mUserName, mHostName, 22);
          session.setPassword(mPwd);
          session.setConfig("StrictHostKeyChecking", "no");
          session.connect(30000);   // making a connection with timeout.
         
          Channel channel = session.openChannel("exec");
          ((ChannelExec) channel).setCommand(mCommand);
          InputStream in = channel.getInputStream();
          channel.connect();
          int nextChar;
          StringBuffer sb = new StringBuffer();
          while(true){
              while ((nextChar = in.read()) != -1) {
              sb.append((char) nextChar);
              }
              if (channel.isClosed()) {
              System.out.println("exit-status: "
                  + channel.getExitStatus());
              break;
              }
              try {
              Thread.sleep(1000);
              } catch (Exception ee) {
                  System.out.println(ee.getMessage());
              }
            }
            lr.user_data_point( "Load Avg" , Double.parseDouble(sb.toString()) ); //Data Point
            channel.disconnect();
            session.disconnect();
        }catch(Exception e){
          System.out.println(e);
        }
            return 0;
        }//end of action
   
        public int end() throws Throwable {
            return 0;
        }//end of end
}
    当然,这个脚本只是随便举了个例子,剩下的就由你发挥了!
    因为LoadRunner的JavaVuser才开始了解Java,Java真的很强大!起初需要使用LR做一些复杂一点的事情,必须调用DLL完成。不会C++,每次要实现什么功能都得请战友帮忙实现。对代码不太感冒的我,要将性能测试进行到底,不得不去了解程序本身。Java的开源、跨平台,Linux开源、稳定,相关的程序、组件也不断被人们接受和壮大。话题扯远了,谈谈LR与Java吧。
    LR的JavaVuser可以直接运行Java程序,而且还可以使用LR自带的Java运行库,非常好用!
    方法:“File”菜单——“Add Files to Script”,然后在脚本开始前添加import引用,即可调用其中的方法。
    不足的是,LR的编辑器不好用,但是可以在其它编辑器写好代码后再拷过来。LR支持Jar包的调用,可以把写好的程序打包起来以供调用。调用Jar的功能也有个不足:只能调用第一层Jar包,不能调用“包中包”。
    如果项目使用Java开发,测试到一些不容易实现的功能时,可以直接让开发提供一个Jar包来用。因为这些功能开发都已经实现了,不需要额外的开发成本,一定程度上保证了一致性。
    关于本篇讲到的ssh连接Linux,只是陈述了一个思路,核心就是靠Java实现。用其它语言来包装LR,很好 很强大!

http://hi.baidu.com/higkoo/item/4891198b0a684f55e63d19d8
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值