python unittest 框架+个人理解

2019-07-15  本文已影响0人  hao0_0

python unittest 框架理解

前言:自己写python+unittest UI自动化已经快一年了,所以将此框架结合网上文献加上自己的理解,写这篇文章。

一,什么是unittest?

unittest是python的标准测试库,库里面包含测试最基本的方法,这些方法用作一个集合,这个结合就是unittest。

打个比方:

一个测试用例的执行到结束,如同你做公交去一个地方。

1.走路或者骑自行车到公交站。

2.上车刷卡。

3.车上等待到目的地。

4.下车。

5.走路或者骑自行车到目的地

上面的动作简化一下:

动作集成到方法:

去公交站=走路或者骑自行车到公交站

乘车=上车刷卡-->车上等待到目的地-->下车

去目的地=走路或者骑自行车到目的地

然后最终:我 去公交站 乘车 去目的地,这样便捷的完成了一个动作。

我这样的比方不知道能不能传递我想表达的东西。

二。那么对于unittest动作集成的都有哪些呢?

unittest有test fixture, test case, test suite, test runner。

网上解释:

test fixture:The test fixture is everything we need to have in place to exercise the sut。简单来说就是做一些测试过程中需要准备的东西,比如创建临时的数据库,文件和目录等,其中 setUp() 和 setDown() 是最常用的方法

test case:用户自定义的测试case的基类,调用run()方法,会依次调用setUP方法、执行用例的方法、tearDown()方法。

test suite:测试用例集合,可以通过addTest()方法手动增加Test Case,也可通过TestLoader自动添加Test Case,TestLoader在添加用例时,会没有顺序。

test runner:运行测试用例的驱动类,可以执行TestCase,也可执行TestSuite。执行后TestCase和Testsuite会自动管理TestResult。

个人理解:

1.test fixture 就是开始的准备工作,定义一个启动的方法,方法下面你想在启动时候想做什么就放什么,比如,截图的总imgs定义,保存执行过程的图片保存在此列表内;addClearup清理电脑浏览器进程和本地空间,等。

2.test case:就是用例的最基本的代码编写处,比如登录,加车等基础代码编写的地方。

3.test suite:就是讲test case集合起来,比如登录case,加车case,购买case,结算case,结合在一起成 “购买suite”。一个集合体。其中addTest()手动添加,TestLoader自动添加。

4.test runner:就是执行,用例,启动UI自动化动作。其中不仅可以执行用例,而且包含发送邮件的方法。

正常调用unittest的流程是,TestLoader 自动将测试用例TestCase中加载到TestSuite里,TextTestRunner调用TestSuite的run方法,顺序执行里面的TestCase中以test开头的方法,并得到测试结果TestResult。在执行TestCase过程中,先进行SetUp()环境准备,执行测试代码,最后tearDown()进行测试的还原。

其中TestLoader在加载过程中,进行添加的TestCase是没有顺序的。一个TestCase里如果存在多个验证方法的话,会按照方法中test后方首字母的排序进行执行。

可以通过手动调用TestSuite的addTest、addTests方法来动态添加TestCase,这样既可以确定添加用例的执行顺序,也可避免TestCase中的验证方法一定要用test开头。

在搭建接口测试平台的时候,每新建一个接口的时,会自动生成一个 TestCase,选中运行单个接口时,使用TextTestRunner直接调用单个TestCase。运行多个接口时,手动给TestSuite添加TestCase,供TextTestRunner调用并生成测试结果。

综上:就是一个unittest框架的网上文献和一些个人理解。

上一篇下一篇

猜你喜欢

热点阅读