目录
- 一、unittest简介(重要的概念)
- 二、断言方法
- 三、discover更多测试用例
- 四、用例执行的顺序
- 五、执行多级目录的用例
- 六、跳过测试和预期失败
- 七、编写WEB测试用例
一、什么是框架?
提供用例组织与执行
- 大量的用例堆砌在一起,就产生了扩展性与维护性等问题,需要考虑用例的规荡与组织问题。
提供丰富的比较方法
- 用例执行完成之后,需要将实际结果与预期进行比较,从而断定用例是否执行通过。
提供丰富的执行日志
- 当测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。
重要的概念
1.Test Case
一个TestCase的实例就是一个测试用例。(一个完整的测试流程)
包括:
- 测试前准备环境的搭建(setUp)
- 实现测试过程的代码(run)
- 测试后环境的还原(tearDown)
2.Test Suite
测试套件:把多条用例放在一起执行。
3.Test Runner
测试的执行是单元测试中一个重要的概念。
- 一般单元测试框架中都会提供丰富的执行策略和执行结果。
4.Test Fixture
对一个测试用例环境的搭建和销毁,就是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。
EG:
- 测试用例的执行需要访问数据库。
- 在setUp()中建立数据库连接来进行初始化。
- 在tearDonw()中清除数据库产生的数据。
实例

套件:


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

三、discover更多测试用例
当测试用例集更多,runtest逐一添加过于麻烦,TestLoader类中提供有discover()方法可更容易解决这个问题。
unittest.defaultTestLoader.discover(start_dir, pattern, top_level_dir)
- start_dir:要测试的模块名或测试用例目录
- pattern=‘test*.py:表示用例文件名的匹配原则。
- top_level_dir=None:测试模块的顶层目录,如果没有顶层,默认为None。
四、用例执行的顺序
用例的执行涉及多个层级:
- 在多个测试目录的情况下,先执行哪个目录?
- 在多个测试文件的情况下,先执行哪个文件?
- 在多个测试类的情况下,先执行哪个测试类?
- 在多个测试方法的情况下,先执行哪个测试方法?
- unittest框架默认根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0~9、A~Z、a~z。
- 对于测试目录与测试文件来说,unittest框架同样是按照这个规则来加载测试用例的。
五、执行多级目录的用例
当测试用例达到一定量级时,就要考虑划分目录,比如规划如下目录:

如果将discover()方法中的start_dir参数定义为“./test_case/”目录,那么只能加载test_a.py文件中的测试用例。
方法:在每级目录中新建一个__init__.py文件即可。
六、跳过测试和预期失败
在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试。unittest提供了实现这些需求的装饰器。
1、unittest.skip(reason)
2、unittest.skipIf(condition,reason)
3、unittest.skipUnless(condition, reason)
4、unittest.expectedFailure
- 测试标记为失败。不管执行结果是否失败,统一标记为失败
七、web测试用例目录样例

unittest测试框架 (上)
原文:https://www.cnblogs.com/070727sun/p/12388837.html