论pytest封装Ubuntu命令一

1:最刚开始的原始脚本如下

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 跳过了远程连接中选择‘是’的环节,
ssh.connect(hostname='192.168.0.128', port=22, username='x', password='1')
stdin, stdout, stderr = ssh.exec_command('ls ')
print(stdout.read().decode('utf-8'))
stdin, stdout, stderr = ssh.exec_command('pwd')
print(ssh.exec_command('pwd')[1].read().decode('utf-8'))里插入代码片

从上面的可以看到完全是开发的编写方式,对于测试而言非常的不友好。而且可扩展性也比较差。我将会将其封装为一个没有代码基础的人也可以使用的框架。
第一个封装界面 base_api.py

在这里插入代码片
class BaseApi:
    def ssh_exec_command(self,cmd):
        '''
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname='192.168.0.128', port=22, username='x', password='1')
        stdin, stdout, stderr = ssh.exec_command('pwd')
        print(stdout)
        ssh.close()
        '''
        # 实例化一个transport对象
        trans = paramiko.Transport(('192.168.0.128', 22))
        # 建立连接
        trans.connect(username='x', password='1')

        # 将sshclient的对象的transport指定为以上的trans
        ssh = paramiko.SSHClient()
        ssh._transport = trans
        # 执行命令,和传统方法一样
        return ssh.exec_command(cmd)[1].read().decode()
        # 关闭连接
        trans.close()

第二次封装,比如ls的命令

    def get_ls(self,cmd):
        return self.ssh_exec_command(cmd)
在这里插入代码片

从这里可以看到

最后使用测试脚本,框架是pytest

在这里插入代码片
from IPC.ls import Ls
class Test_get_token:
    def setup(self):
        self.ls=Ls()
    def test_ls(self):

        print( self.ls.ssh_exec_command('ls'))

这是一个非常基本的封装,从上面可以看到是有很多不合理的地方。
后续还会继续封装。
很多封装的概念没有加入,后续加入
对于测试而言,只需要编写最后的测试脚本,但是依然不算友好。后续会继续改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值