【SSD】自动化测试框架

自动化测试框架

通常我们看的自动化测试框架,大部分是用于测试软件类产品,对于SSD这样的硬件产品来说,要进行自动化测试搭建,实现方案上可选择性并不太多。目前仅分享我自己接触到的几类比较方便的自动化测试框架

Pytest

远程执行模块:paramiko
本地执行模块:subprocess,OS
测试第三方工具:fio, vdbench, ipmitool, sysstat, nvme-cli等
实现方案:

  1. SSD 预留测试接口,可直接通过shell cmd或win cmd下发调控
  2. 将接口写成公共类,将远程模块自行定义封装格式及回显
  3. 通过pytest 框架进行用例编写
    实现结果类似如下:
    在这里插入图片描述pytest调试过程如上
    测试报告如下:
    在这里插入图片描述
    paramiko 封装实例
import paramiko
import time
import subprocess
import  platform

class ssh1(object):
    port = 22
    usr = 'root'

    def __int__(self,port, usr):
        self.port = port
        self.usr = usr

    def ssh_Connect(self, hostid='1', cmd='ls',password='1234' ):
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
        ssh.connect(hostname=hostid, username=self.usr,password=password,port=self.port)
        stdin, stdout, stderr = ssh.exec_command(r'%s' % cmd, get_pty=True)
        result = {'ip':hostid, 'cmd': cmd, 'res': stdout.readlines(), 'stderr': stderr}
        ssh.close()
        return result

    # def ssh_ht_Pid(self):
    #     ssh = paramiko.SSHClient()
    #     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    #     ssh.connect(hostname=hostid, username=self.usr, password=password, port=self.port)
    #     stdin, stdout, stderr = ssh.exec_command(r'%s' % cmd, get_pty=True)
    #     while stdout.readlines() :


if __name__ == '__main__':
    sshconnect = ssh1()
    sshconnect.ssh_Connect()

pytest 环境公用配置代码如下:


```python
import pytest
import sshconnect
@pytest.fixture(scope="class")
def getenv():

    device = ["/dev/nvme0n1", "/dev/nvme1n1", "/dev/nvme2n1", "/dev/nvme3n1", "/dev/nvme4n1"]
    hostip = "192.168.x.xxx"
    envdict = {"device": device, "hostip": hostip}
    return envdict

工具类接口代码如下

# coding=utf-8
import os

import sshconnect
import time

class commands(object):
    def pcie_check_status(self):
        kw = ['DevSta', 'MaxReadReq', 'LnkSta', 'UESta', 'CESta']
        nvme_nu = ''.join(self.device).split('ev')[-1].replace('/', '')
        bdf = "ls -l /sys/block/ |grep %s |awk -F /nvme/ '{print $1}'|awk -F / '{print $NF}'" % nvme_nu
        ssh = sshconnect.ssh1()
        bdf_value = ssh.ssh_Connect(hostid=self.ip, cmd=bdf)['recored']
        for key in kw:
            commands_pcie = 'lspci -vvv -s %s | grep %s' % (bdf_value[0].replace('\r\n', ''), key)
            print commands_pcie
            ssh = sshconnect.ssh1()
            pcie_info = ssh.ssh_Connect(hostid=self.ip, cmd=commands_pcie)['recored']
            if key != 'LnkSta':
                if '+' not in ''.join(pcie_info):
                    print self.device + ' : ' + ''.join(pcie_info)
                else:
                    print 'PCIe link error'
                    assert '+'  in ''.join(pcie_info)
            else:
                if 'downgrade' not in ''.join(pcie_info):
                    print   self.device + ' : ' + ''.join(pcie_info)
                else:
                    print 'PCIe link error'
                    assert '+' in ''.join(pcie_info)
if __name__ == '__main__':
	pass

上述函数为查询PCIE建链状态的方法
按照此模板方式扩展,即可实现自动化测试环境搭建。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SSD(Single Shot MultiBox Detector)是一种目标检测算法,可以同时检测出图像中多个目标的位置和类别。在Python中,我们可以使用一些框架实现SSD算法,以下是其中几个常用的框架: 1. TensorFlow Object Detection API:TensorFlow Object Detection API是由Google开发的一个基于TensorFlow的开源目标检测框架,支持多种经典的目标检测算法,包括SSD。它提供了一些预训练模型和训练代码,可以快速搭建自己的目标检测系统。 2. PyTorch:PyTorch是Facebook开源的一个深度学习框架,也可以用来实现SSD算法。PyTorch提供了丰富的工具和库,可以帮助用户高效地进行模型训练和部署。 3. MXNet:MXNet是一个由亚马逊AWS开发的深度学习框架,也支持SSD算法。MXNet提供了高性能的计算引擎和分布式训练功能,可以帮助用户更快地训练大规模的模型。 4. Keras:Keras是一个高级神经网络API,可以用来构建和训练深度学习模型。Keras提供了一些预训练的模型和工具,可以帮助用户快速实现SSD算法。 以上这些框架都非常强大,可以帮助用户快速搭建自己的目标检测系统。选择哪一个框架主要取决于个人喜好和项目需求。 ### 回答2: Python SSD框架是一种基于Python语言开发的目标检测算法框架。SSD全称Single Shot MultiBox Detector,是一种经典的目标检测算法。其主要特点是能够实现实时的目标检测,并且在准确率和速度方面都表现出色。 Python SSD框架的设计思路是将目标检测任务转化为一个回归问题和一个分类问题。首先,使用一个预训练的卷积神经网络模型,如VGG16或ResNet作为主干网络。然后,在主干网络的基础上,添加一系列卷积层来生成不同尺度和不同宽高比的默认框。接着,通过回归网络对这些默认框进行位置微调,并利用分类网络对这些框进行目标分类。最后,使用非极大值抑制算法对检测结果进行筛选,得到最终的目标检测结果。 Python SSD框架的优点在于其简洁高效的实现方式。相比于其他目标检测算法,SSD只需要一次前向传播就可以得到检测结果,大大提高了检测速度。同时,SSD还能够在不同尺度和不同宽高比的情况下进行目标检测,具有较好的适应性。 此外,Python SSD框架还支持针对具体任务的定制化操作。用户可以根据自己的需求,自定义不同的网络结构和参数设置,以适应不同的应用场景。 总之,Python SSD框架以其实时性、准确性和灵活性等优势,在目标检测领域具有广泛的应用前景。 ### 回答3: Python SSD(Single Shot MultiBox Detector)是一种用于目标检测的深度学习模型框架。SSD是一种基于卷积神经网络的模型,能够同时进行目标的定位和分类。 Python SSD框架使用了常见的深度学习库,如TensorFlow和PyTorch,以及其他一些辅助库,如Numpy和OpenCV。它提供了一系列的函数和类,用于训练和推理目标检测模型。 Python SSD框架的优点之一是其简单而高效的设计。与传统的目标检测算法相比,SSD使用了一个单独的卷积网络来完成目标检测任务,而无需额外的候选框生成和后处理步骤。这样可以大大提高检测速度,并减少运行时间。 此外,Python SSD框架还具有较高的准确性。由于网络结构的设计和训练策略的优化,SSD能够较好地处理各种不同尺寸和形状的目标,以及各种不同的场景和光照条件。 Python SSD框架还具备灵活性和可扩展性。用户可以根据自己的需求和数据集的特点进行模型的调整和训练。用户还可以根据自己的需要添加不同的目标类别,并进行相应的模型微调和训练。 总之,Python SSD框架是一个强大的目标检测工具,具有简单高效、准确性高和灵活可扩展等优点。它为开发者提供了一种方便快捷的方式来实现目标检测任务,并在各自的应用场景中发挥作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值