Python学习:想要学习UnitTest框架,确定不看看吗?(unittest是python自带的什么)

网友投稿 276 2022-09-04


Python学习:想要学习UnitTest框架,确定不看看吗?(unittest是python自带的什么)

介绍

作为单元测试的框架, unittest 也是可以对程序最小模块的一种敏捷化的测试;利用单元测试框架,创建一个类,该类继承unittest的TestCase,这样可以把每个case看成是一个最小的单元, 由测试容器组织起来,到时候直接执行,同时引入测试报告。

一、UnitTest是什么?

unittest是Python单元测试框架,也是python的自动测试包

二、UnitTest的核心要素

1、TestCase:一个TestCase方法是一个测试用例,测试用例必须继承unittest.TestCase

(1)导包:import unittest

(2)class 类名(unittest.TestCase):

def setUp(): 负责测试环境的搭建,一般包含实例化webdriver,最大化、隐式等待、打开url等

def tearDown():负责测试环境的销毁,一般包含退出登录、退出浏览器等

def test_xxx():

(3)注意:

① 测试用例中方法名必须以test开头,否则不会被执行

② 写main方法

③ 光标放在代码后面的空白行或者mian()方法的位置执行

④ 如果把光标放在某一个方法名后面执行,只能执行当前一个方法

⑤ 多个方法,按照方法名ASCII的顺序执行

2、Test suite:测试套件

(1)把多个测试用例集合到一起就构成了测试套件

(2)测试套件无法直接运行

3、Test runner:测试执行

(1)用来执行测试套件

4、TestLoader:用于创建类和模块的测试套件

(1)一般的情况下,使TestLoader().loadTestsFromTestCase(TestClass)来加载测试类

5、Test fixture:概述

(1)负责测试环境的搭建(初始化)和销毁(清除)

(2)在继承了unittest.TestCase的前提下,Fixture = setUp() + tearDown()

(3) setUp():负责测试环境的搭建,一般包含实例化webdriver,最大化、隐式等待、打开url等

(4)tearDown():负责测试环境的销毁,一般包含推出登录、推出浏览器等

(5)每一个test_xxx()方法被执行之前都会先执行setUp(),然后在执行test_xxx()方法,最后执行tearDown()方法

三、测试套件与测试执行

(1)生成测试套件

① 实例化TestSuite一个空的测试套件,给套件添加测试用例(方法)

② addTest(类名(方法名)):添加指定类中的指定方法

③ addTest(unittest.makeSuite(类名)):添加指定类中所有以test开头的方法

(2)执行测试套件

① 实例化TextTestRunner,然后调用run()执行测试套件

(3)defaultTestLoader

① 生成测试套件的,可以认为是TestSuite的一种特殊的实现方式

② defaultTestLoader有个方法discover()能够在执行目录搜索指定开头的.py文件,并把所有测试类中test开头的方法添加到测试套件中

一般,会把套件.py文件和用例放在同一个目录,否则可能导致截图失败

四、断言

(1)概念:由程序代替认为自动判断实际结果是否符合预期结果的过程

(2)断言的分类

① 比较断言

② 基本布尔型断言

③ 复杂断言

(3)断言的方法

① assertEqual(arg1, arg2),判断arg1 == agr2

② assertIn(str1, str2), 判断str1是否为str2的字串

(4)断言拓展

① 断言失败后续的代码不会被执行---->异常处理

(2)异常处理的格式

try:

可能出现异常的代码

except 异常类型:

捕获到该异常时执行的代码

raise抛出异常,让程序报错

else:

没有异常时执行的代码

finally:

有没有异常,都会执行的代码


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:注释、变量数据类型与基本输入输出(输入变量和输出变量的定义)
下一篇:详解Java springboot 整合Shiro框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~