在MeterSphere中如何实现SSH登录服务器

在MeterSphere中如何实现SSH登录服务器

  • 1、MeterSphere平台的SSH插件
    • 1.1 获取插件
    • 1.2 安装插件
      • 注意事项
    • 1.3 通过插件实现SSH登录服务器及相关操作
      • 注意事项
  • 2、使用MeterSphere前后置脚本实现SSH服务器及操作
    • 2.1 beanshell代码:实现SSH登录并执行ls命令
    • 2.2在MeterSphere“代码片段”里测试
      • 注意事项

在测试过程中很多时候会遇到,需要通过SSH协议登录到服务器上获取某些配置文件或者日志文件,或者启动其他服务/脚本执行等等。MeterSphere测试平台可以提供多种方式实现此功能。下面介绍使用MeterSphere测试平台实现此要求相关操作和注意事项。

1、MeterSphere平台的SSH插件

使用平台提供的SSH插件能简单、快捷地实现上述需求,并且对测试人员代码要求和用例维护成本都相对较低。

1.1 获取插件

此插件可以到https://github.com/metersphere 下载,如果这里没有找到,可以到MeterSphere厂商索要插件,方式:https://fit2cloud.com/ 打电话或者扫码厂商的支持二维码,进入厂商的交流群索要即可。

1.2 安装插件

路径:MeterSphere的系统设置>>系统>>插件管理》》上传插件
在MeterSphere中如何实现SSH登录服务器_第1张图片
在上传插件时,类型需要选择为【接口测试】
在MeterSphere中如何实现SSH登录服务器_第2张图片

注意事项

在上传插件后,建议重新启动【system-setting】服务,否则插件使用时会有异常。
在MeterSphere中如何实现SSH登录服务器_第3张图片

1.3 通过插件实现SSH登录服务器及相关操作

1、插件上传后,我们新建一个场景,专门测试此功能,路径如下:选择【接口测试>>接口自动化>>创建场景】
在MeterSphere中如何实现SSH登录服务器_第4张图片
2、进入场景详情页面,选择右下角的加号【+】,在弹出的菜单中选择【模拟请求】,左侧出现该节点相关服务器登录信息以及具体的操作命令即可
在MeterSphere中如何实现SSH登录服务器_第5张图片
点击【调试】或者【执行】即可完成。

注意事项

在MeterSphere中如何实现SSH登录服务器_第6张图片

2、使用MeterSphere前后置脚本实现SSH服务器及操作

MeterSphere V2+版的前后置脚本是支持多语言的:beanshell、groovy、javascript、python。
在MeterSphere中如何实现SSH登录服务器_第7张图片
现在使用beanshell脚本的方式实现SSH登录服务器及相关操作。

2.1 beanshell代码:实现SSH登录并执行ls命令

下面代码样例是beanshell脚本实现SSH登录服务器,并且执行ls命令。

import com.jcraft.jsch.*;


        try {
            JSch jsch = new JSch();

            // 设置SSH连接的用户名、主机和端口
            String username = "用户名";
            String host = "主机地址";
            int port = 22;

            // 创建SSH会话
            Session session = jsch.getSession(username, host, port);

            // 设置SSH会话的密码
            String password = "登录密码";
            session.setPassword(password);

            // 禁用SSH主机密钥检查
            session.setConfig("StrictHostKeyChecking", "no");

            // 建立SSH连接
            session.connect();

            // 打开SSH通道
            Channel channel = session.openChannel("exec");

            // 设置执行的命令
            String command = "ls";

            // 在SSH通道中执行命令
            ((ChannelExec) channel).setCommand(command);

            // 获取命令执行的输出流
            channel.setInputStream(null);
            ((ChannelExec) channel).setErrStream(System.err);

            // 连接SSH通道
            channel.connect();

            // 读取命令执行的输出
            InputStream in = channel.getInputStream();
            byte[] buffer = new byte[1024];
            while (true) {
                while (in.available() > 0) {
                    int bytesRead = in.read(buffer, 0, 1024);
                    if (bytesRead < 0) break;
                    System.out.print(new String(buffer, 0, bytesRead));
                    String ss = new String(buffer, 0, bytesRead);
                   
                }
                if (channel.isClosed()) {
                    if (in.available() > 0) continue;
                    System.out.println("Exit status: " + channel.getExitStatus());
                    break;
                }
                try {
                    Thread.sleep(1000);
                } catch (Exception ee) {
                    ee.printStackTrace();
                }
            }

            // 关闭SSH通道和会话
            channel.disconnect();
            session.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }

2.2在MeterSphere“代码片段”里测试

在MeterSphere中如何实现SSH登录服务器_第8张图片
在MeterSphere中如何实现SSH登录服务器_第9张图片

注意事项

需要下载【JSch】包,并且把该包上传到MeterSphere平台。
上传jar的路径:【项目设置>>文件管理】
在MeterSphere中如何实现SSH登录服务器_第10张图片
选择【添加文件】上传JSch包
在这里插入图片描述
点击jar包后面的【眼睛】图标,设置【开启】jar包用于接口测试
在MeterSphere中如何实现SSH登录服务器_第11张图片

经验:在MeterSphere也尝试了Python脚本去实现SSH登录,但是没有成功,一直有异常,脚本在本地执行都没有问题。大家如果在MeterSphere用Python脚本实现的,请多多指教。

你可能感兴趣的:(metersphere,ssh,服务器)