美文网首页
『心善渊』Selenium3.0基础 — 36.单元测试框架un

『心善渊』Selenium3.0基础 — 36.单元测试框架un

作者: 繁华似锦Fighting | 来源:发表于2020-09-15 15:39 被阅读0次

    (一)unittest基本简介

    unittest是Python自带的一个单元测试框架,unittest又被称为PyUnit,是由Java的JUnit衍生而来,基本结构是类似的。对于单元测试,需要设置预先条件,对比预期结果和实际结果。

    由于unittest是Python自带的标准模块,所以不需要单独再去安装。引入包import unittest即可使用。

    (二)unittest基本概念

    1、unittest核心的四个概念

    1. test fixture

      fixture表示test case运行前需要做的准备工作以及结束后的清理工作。比如,创建临时/代理数据库、目录或启动一个浏览器进程。

    2. test case

      test case是单元测试中的最小个体,通常是使用assert方法(断言)检查动作和输入的响应。

      unittest提供了一个基础类TestCase,一般是基于TestCase类进行扩充,来创建test case测试用例。

    3. test suite

      test suite(套件)是test case的合集,通常用test suitetest case按需求汇总后,统一执行。(批量执行用例)

    4. test runner

      test runner是一个执行器,用来执行测试用例或者套件。并将测试结果保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。并提供图形界面、文本界面或者返回一个值展示测试结果。

    2、如何创建一个测试类

    所有测试用例类都要继承TestCase基本类。

    # 1. 导入unittest
    import unittest
    
    # 2. 定义一个测试类
    class Test_demo(unittest.TestCase):
    

    3、test fixture常用的四个方法

    (1)基于函数级别的方法

    • setup():每个测试方法运行前执行一次。测试类中有多少测试用例执行多少次。
    • teardown():每个测试方法运行完后执行一次。测试类中有多少测试用例执行多少次。

    (2)基于类级别的方法

    • setUpClass():在测试类执行前执行一次,需要@classmethod装饰器修饰。
    • tearDownClass():在测试类执行完后执行一次,需要@classmethod装饰器修饰。

    4、unittest编写测试方法(用例)规范

    1. py文件需要以test开头。(规范,不必须)
    2. 测试类名称需要Test开头。(规范,不必须)
    3. 每个测试方法名称均以test开头,否则是不被unittest识别的。(规范,必须)
    4. 在unittest框架中,测试用例就是TestCase的实例,所以每个测试类必须继承unittestTestCase类来编写用例。
    5. 测试方法必须带self参数,用来单独运行或则组合运行用例。
    6. 测试用例的执行顺序是按照测试方法名的ASCII编码字符集的顺序进行排序的。

    5、执行测试脚本

    unittest.main():将一个单元测试模块变为可直接运行的测试脚本,main()方法是使用TestLoader类来搜索所有包含在该模块中以test命名开头的测试方法,并自动执行他们。

    执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z

    相关文章

      网友评论

          本文标题:『心善渊』Selenium3.0基础 — 36.单元测试框架un

          本文链接:https://www.haomeiwen.com/subject/fbdfyktx.html