美文网首页
2018-10-19 单元测试框架--unittest

2018-10-19 单元测试框架--unittest

作者: 初见_0308 | 来源:发表于2018-10-22 15:53 被阅读0次

    (1)seleniumIDE介绍

    Selenium IDE安装

    Selenium  IDE界面介绍

    创建测试用例

    Selenium  IDE命令

    断言与验证

    (2)引入unittest框架

    提供用例组织与执行:当你的测试用例只有几条时,可以不必考虑用例的组织,但是,当测试用例达到成百上千条时,大量的测试用例堆砌在一起,就产生了扩展性与维护性等问题,此时需要考虑用例的规范与组织问题了。单元测试框架就是用来解决这个问题的。

    提供丰富的比较方法:不论是功能测试,还是单元测试,在用例执行完成之后都需要将实际结果与预期结果进行比较(断言),从而断定用例是否执行通过。单元测试框架一般会提供丰富的断言方法。例如,判断相等/不等、包含/不包含、True/False 的断言方法等。

    提供丰富的日志:当测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。例如,总执行时间、失败用例数、成功用例数等。

    (3)unittest框架解析

    提供丰富的日志:当测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。例如,总执行时间、失败用例数、成功用例数等。

    初识unittest:创建一个被测试类 calculator.py


    不使用单元测试框架

    使用unittest单元测试框架

    (4)unittest框架介绍--重要概念    

    1、TestCase

    一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp)、实现测试过程的代码(run),以及测试后环境的还原(tearDown)。单元测试(unit test)的本质也就在这里,一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

    2、TestSuite 测试套

    一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起来执行,这就产生了测试套件 TestSuite 的概念。Test Suite 用来组装单个测试用例。可以通过 addTest()加载 TestCase 到 TestSuite 中,从而返回一个 TestSuite 实例。

    3、TestRunner

    测试的执行也是单元测试中非常重要的一个概念,一般单元测试框架中都会提供丰富的执行策略和执行结果。在 unittest 单元测试框架中,通过TextTestRunner 类提供的 run()方法来执行 test suite/test case。testrunner 可以使用图形界面、文本界面,或返回一个特殊的值等方式来表示测试执行的结果。

    4、TestFixture

    对一个测试用例环境的搭建和销毁,就是一个 fixture,通过覆盖TestCase的 setUp()和tearDown()方法来实现。有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在 setUp()中通过建立数据库连接来进行初始化,在 tearDown()中清除数据库产生的数据,然后关闭连接等。

    注意:tearDown 的过程很重要,要为下一个 test case 留下一个干净的环境。

    unittest 框架 断言

    在执行用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果与预期结果是否相等决定的。unittest框架的 TestCase类提供下面这些方法用于测试结果的判断。

    assertEqual( a,b,msg=none):断言a是否等于b

    assertNotEqual( a,b,msg=none):断言a是否不等于b

    assertTrue( expr,msg=none):断言expr为TRUE

    assertFalse( expr,msg=none):断言expr为False

    assertTeue( expr,msg=none):断言expr为TRUE

    assertFalse( expr,msg=none):断言expr为False

    assertIn(a,b, msg=None) :断言a在b中

    assertNotIn(a,b,msg=none):断言a不在b中

    assertIsNone(a, msg=None) :断言a为none

    assertIsNotNone(a,b,msg=none):断言a不为none

    assertIsInstance(a, b) :断言a为b的实例

    assertNotIsInstance(a, b) :断言a不是b的实例

    (4)组织测试用例

    根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,整体结构更加清晰。

    相关文章

      网友评论

          本文标题:2018-10-19 单元测试框架--unittest

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