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

(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)组织测试用例

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 unittest单元测试框架总结 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动...
    lucasdada阅读 231评论 0 0
  • 洞见SELENIUM自动化测试 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出...
    厲铆兄阅读 6,754评论 3 47
  • 1.unittest的属性如下:['BaseTestSuite', 'FunctionTestCase', 'Sk...
    奕剑听雨阅读 217评论 0 0
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,056评论 0 13
  • 像一个游魂 了没精神,面无表情 对任何人、任何事 不必费多一丝心 添多一字一言 就顺从季节 让寒冷占多一份地 让北...
    素之乔阅读 165评论 0 1