自动化测试框架

通常我们看的自动化测试框架,大部分是用于测试软件类产品,对于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  platformclass ssh1(object):port = 22usr = 'root'def __int__(self,port, usr):self.port = portself.usr = usrdef 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 osimport sshconnect
import timeclass 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_nussh = 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_pciessh = 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建链状态的方法
按照此模板方式扩展,即可实现自动化测试环境搭建。

【SSD】自动化测试框架相关推荐

  1. 软件自动测试框架,软件自动化测试框架的研究和实现

    摘要: 软件自动化测试是软件工程领域的一项重要课题.随着软件工程理论的不断发展,软件自动化测试在理论上也不断达到新的高度.目前最为成熟的软件自动化测试技术是使用自动测试框架来指导自动化测试的实现.迄今 ...

  2. 转:一个简单的基于WEB的QTP自动化测试框架-SAFFRON

    来源: http://www.itestware.com/ctest/index.php?option=com_content&view=article&id=62:webqtp-sa ...

  3. 2021年需要学习Python的自动化测试框架有哪些?你知道吗?

    从某种程度来讲,自动化测试是未来的发展趋势,它可以很好地节省时间成本和人力成本,提高工作效率.那么Python自动化测试框架有哪些?相信很多人都不太了解,我们一起来看看吧. 一.Robot Frame ...

  4. 我在兰亭这三年之AutoDiff自动化测试框架

    不知不觉已经写了8个关于我在兰亭这三年的主题,其实在刚开始起草的时候就已经想好了写哪些内容,预告一下总共有10个主题,这是倒数第二个.我在前面也讲过两则关于自动化的主题,其实之前的实践还远远不止这些, ...

  5. 给接口自动化测试框架增色,实现企业微信测试报告

    作者在新项目中搭建了python+requests+unittest+HTMLTestRunner接口自动化测试框架,通过修改配置文件实现环境隔离,一份脚本即可在不同的环境执行接口测试用例. 但是没有 ...

  6. 自动化测试框架的隐藏小细节,你都知道么

    辅助平台 除了自动化测试框架本身,一些跟持续集成相关的辅助平台也会对自动化测试有很大的帮助.比如CI可以进行交付件部署.测试调度:源代码平台可管理产品和测试脚本的代码:依赖管理器一般是针对某种语言类库 ...

  7. 从理论到工具 - 带你全面了解自动化测试框架

    什么是自动化测试框架 01 什么是框架 框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.它规定了应用的体系结构,阐明了整个设计.协作构件之间的依赖关系.责任分配和控制流程, ...

  8. 自动化测试系列-自动化测试框架那些事儿

    无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架.很多小伙伴一直对"框架"这个词知其然不知其所以然.今天咱就聊聊自动化框架的那些事儿吧... 一.什么是框架 框架(fr ...

  9. 超硬核,整理的这10个自动化测试框架,使用后简直如有神助

    软件行业正朝着独立.快速和高效的未来发展.为了跟上这个快速发展的生态系统,我们必须加快应用程序的交付时间,但不能以牺牲质量为代价.快速实现质量是必要的,因此质量保证受到了很多关注.为了满足卓越质量和更 ...

最新文章

  1. hive 学习之异常篇
  2. Markdown的一些常用的语法
  3. 虚方法virtual详解(转载)
  4. Angular应用双向绑定的语法糖
  5. java 11_JAVA 11初体验
  6. Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
  7. C++学习之路 | PTA乙级—— 1058 选择题 (20 分)(精简)
  8. 探究光栅图像学之水纹渲染与折射滤镜
  9. linux svn 设置propertise
  10. log添加 oracle redo_Oracle更改redo log大小 or 增加redo log组
  11. 47 jquery 计时器 选择器 筛选器 左边菜单栏
  12. 计算机键盘字母排列依据,键盘上的26个字母排序有什么规律吗?是怎么定的?...
  13. 深度学习在音乐信息检索(MIR)方向的应用介绍(上)
  14. 深入 iOS 静态链接器(一)— ld64
  15. 苹果iphone手机哪些机型支持刷公交卡
  16. matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵
  17. 电脑重装win10系统bios不会设置?用这种方法可以轻松重装系统
  18. Xilinx FPGA高速串行收发器简介
  19. 简历背景图片设置html代码,怎么在简历中添加背景图片
  20. http判断缓存是否有效,为什么有了last-modified还需要etag呢?

热门文章

  1. jQuery五星好评
  2. Bailian2755 神奇的口袋【递归+DP】
  3. 关于ubuntu无法播放土豆视频的解决方法
  4. 【wifi】一步提升无线网络上网速率
  5. sa387gr11cl2相当于什么材料,sa387gr11cl2对应国内材质
  6. 14. RDMA之Memory Window
  7. 【5G系列】MICO学习总结(2)
  8. 【PDN仿真笔记8-使用Sigrity 进行DCR仿真的方法】
  9. eclipse突然打不开,双击没反应
  10. 30岁的女程序员该何去何从