首页 > 其他 > 详细

unittest测试框架 (上)

时间:2020-03-01 20:18:04      阅读:53      评论:0      收藏:0      [点我收藏+]

目录

  • 一、unittest简介(重要的概念)
  • 二、断言方法
  • 三、discover更多测试用例
  • 四、用例执行的顺序
  • 五、执行多级目录的用例
  • 六、跳过测试和预期失败
  • 七、编写WEB测试用例 

一、什么是框架?

提供用例组织与执行

  • 大量的用例堆砌在一起,就产生了扩展性与维护性等问题,需要考虑用例的规荡与组织问题。

提供丰富的比较方法

  • 用例执行完成之后,需要将实际结果与预期进行比较,从而断定用例是否执行通过。

提供丰富的执行日志

  • 当测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完成后能提供丰富的执行结果。

重要的概念

1.Test Case

一个TestCase的实例就是一个测试用例。(一个完整的测试流程)

包括:

  • 测试前准备环境的搭建(setUp)
  • 实现测试过程的代码(run)
  • 测试后环境的还原(tearDown)

2.Test Suite

测试套件:把多条用例放在一起执行。

  • TestSuite用来组装单个测试用例。

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

四、用例执行的顺序

用例的执行涉及多个层级:

  1. 在多个测试目录的情况下,先执行哪个目录?
  2. 在多个测试文件的情况下,先执行哪个文件?
  3. 在多个测试类的情况下,先执行哪个测试类?
  4. 在多个测试方法的情况下,先执行哪个测试方法?
  • 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!