IPMITOOL自动化测试参考手册Word下载.docx

上传人:wj 文档编号:1452463 上传时间:2023-04-30 格式:DOCX 页数:11 大小:1.66MB
下载 相关 举报
IPMITOOL自动化测试参考手册Word下载.docx_第1页
第1页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第2页
第2页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第3页
第3页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第4页
第4页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第5页
第5页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第6页
第6页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第7页
第7页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第8页
第8页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第9页
第9页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第10页
第10页 / 共11页
IPMITOOL自动化测试参考手册Word下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

IPMITOOL自动化测试参考手册Word下载.docx

《IPMITOOL自动化测试参考手册Word下载.docx》由会员分享,可在线阅读,更多相关《IPMITOOL自动化测试参考手册Word下载.docx(11页珍藏版)》请在冰点文库上搜索。

IPMITOOL自动化测试参考手册Word下载.docx

四.单元测试补充内容 1

一.系统环境:

ubuntu15.04

二.准备工作:

1.在ubuntu上安装python2.7

在ubuntulinux的发布版本中有预先安装好的python,可按照如下步骤安装python2.7。

1)在边条上选择“unbuntu软件中心”,它看上去像一个橘色的袋子,如果你没有看到它,可以点击“Dash主页”图标,然后在对话框中输入Software;

2)在软件中心右上角的搜索框中输入Python;

3)在出现的软件列表中选择Python2.7,并点击安装。

2.yaml文件夹,IPMI_automation.py,IPMI_data.yaml,ipmitools需要放置在同一目录下:

1)ipmitools可以通过shell命令来进行安装:

apt-getinstallipmitool;

2)ipmitools可以通过shell命令来获取安装路径:

whereisipmitool;

3)按照ipmitools的所在路径找到ipmitools相关文件,拷贝相关文件,放置与yaml文件夹,IPMI_automation.py,IPMI_data.yaml同一目录下即可。

三.测试ipmitool:

测试步骤如下:

1)将需要测试的ipmitoolcommand作为Parmeters写进IPMI_data.yaml,每条命令对应的Returncode一律写成0(0代表该条命令执行成功);

2)修改好IPMI_data.yaml后保存并关闭,打开python2.7,打开IPMI_automation.py:

3)运行该自动化测试脚本:

窗口中打印的结果中,如果Expectedreturncode=Excecutereturncode=0,则代表该条命令执行成功,否则代表执行失败;

同时程序运行完毕后会在同一目录下生成两个日志,一个详细日志,一个样例日志:

4)打开详细日志日志如下,可以检查shell具体的返回结果:

5)打开样例日志,可以检查每条命令是否pass,总体pass多少命令,fail多少命令:

四.单元测试补充内容:

单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest,testtools,subunit,coverage,testrepository,nose,mox,mock,fixtures,discover,再加上setuptools,distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非功能,是很多人没兴趣触及的东西。

但是作为一个优秀的程序员,不仅要写好功能代码,写好测试代码一样的彰显你的实力。

如此多的框架和工具,很容易让人困惑,困惑的原因是因为并没有理解它的基本原理,如果一些基本的概念都不清楚,怎么能够写出思路清晰的测试代码?

今天的主题就是unittest,作为标准python中的一个模块,是其它框架和工具的基础,参考资料是它的官方文档:

http:

//docs.python.org/2.7/library/unittest.html和源代码,文档已经写的非常好了,我在这里记录的主要是它的一些重要概念、关键点以及可能会碰到的一些坑,目的在于对unittest加深理解,而不是停留在泛泛的表面层上。

unittest是一个python版本的junit,junit是java中的单元测试框架,对java的单元测试,有一句话很贴切:

Keepthebargreen,相信使用eclipse写过java单元测试的都心领神会。

unittest实现了很多junit中的概念,比如我们非常熟悉的testcase,testsuite等,总之,原理都是相通的,只是用不同的语言表达出来。

在开始就介绍了unittest中的4个重要的概念:

testfixture,testcase,testsuite,testrunner,我觉得只有理解了这几个概念,才能真正的理解单元测试的基本原理,下面就主要围绕这几个概念来展开这篇文章。

首先通过查看unittest的源码,来看一下这几个概念,以及他们之间的关系,他们是如何在一起工作的,其静态类图如下:

·

一个TestCase的实例就是一个测试用例。

什么是测试用例呢?

就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。

元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

而多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。

TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。

TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。

测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

这样整个流程就清楚了,首先是要写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中。

现在已经涉及到了testcase,testsuite,testrunner这三个概念了,还有testfixture没有提到,那什么是testfixture呢?

在TestCase的docstring中有这样一段话:

可见,对一个测试用例环境的搭建和销毁,是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。

这个有什么用呢?

比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。

注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。

关于fixture,还有一个专门的库函数叫做fixtures,功能更加强大。

至此,概念和流程基本清楚了,下面通过简单的例子再来实践一下,就拿unittest文档上的例子吧:

TestSequenceFunctions继承自unittest.TestCase,重写了setUp()方法,并且定义了三个以'

test'

开头的方法,那这个TestSequenceFunctions类到底是个什么呢?

它是一个测试用例,还是三个测试用例?

说是三个测试用例的话,它本身继承自TestCase,说是一个测试用例的话,里面又有三个test_*()方法,明显是三个测试用例。

其实,我们只要看一些TestLoader是如何加载测试用例的,就一清二楚了,在loader.TestLoader类中有一个loadTestsFromTestCase()方法:

getTestCaseNames()是从TestCase这个类中找所有以“test”开头的方法,然后注意第9行,在构造TestSuite对象时,其参数使用了一个map方法,即对testCaseNames中的每一个元素,使用testCaseClass为其构造对象,其结果是一个TestCase的对象集合,可以用下面的代码来分步说明:

可见,对每一个以test开头的方法,都为其构建了一个TestCase对象,值得注意的是,如果没有定义test开头的方法,而是将测试代码写到了一个名为runTest的方法中,那么会为该runTest方法构建TestCase对象,如果定义了test开头的方法,就会忽略runTest方法。

至此,基本就清楚了,每一个以test开头的方法,都会为其构建TestCase对象,也就是说TestSequenceFunctions类中其实定义了三个TestCase,之所以写成这样,是为了方便,因为这几个测试用例的fixture是相同的,如果每一个测试用例单独写成一个TestCase的话,会有很多的冗余代码。

明白了这些,文档就可以很轻松的看懂了,至于怎么运行测试用例,以及其他的内容,直接看文档吧。

11/11

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2