python测试管理平台_Python flask 测试管理平台系列: 单元测试 unittest 使用记录

前言:

基于Python+flask+boostrap的测试管理平台目前已实现web、Android、接口的自动化测试用例管理和执行,项目代码也在不断增加。为保障在引入新功能时不影响旧功能的稳定使用,添加一些单元测试就很有必要。

目录结构:

为管理方便,在app 根目录新建一个test 目录,所有的单元测试文件在这里管理。文件与对应的python 文件进行对应,文件名前添加 test_ 的前缀。

一个test 文件只测试一个对应的Python文件,避免交叉造成混乱。如需要测试 core_hubs.py 文件,对应的测试方法就在 test_core_hubs.py 文件中管理。

d3052ac6-6aa7-440b-bfe0-bbaa6a46495d.png!large

单元测试范围:

单元测试是针对方法的测试,因此针对一些基础方法构造相关的测试。

步骤:

dataBasic.py 文件管理的是一些制造基础数据的方法,以其中的 builddata 方法为例,这个方法根据传入的数据类型和长度,生成对应格式、长度的数据:

d5ed70ff-14eb-4e33-b8e6-0cdfaa5a7ffc.png!large

1. 新建测试的py 文件: test_dataBasic.py

2. 在test_dataBasic.py 中分别引入 unittest 类和被测文件 dataBasic 类

3. 初始化:初始化TestDataBasic 类,并在setUp 方法中定义需要的初始化信息。如在这里,我初始化了一个context 的数据json 对象。

4. 逐个添加 test 方法,对应一个单元测试用例。如下图,我分别对timestamp、int、string、float 四种类型,添加了四个测试方法。

b7ebab2a-620a-4aec-9b9d-6ddbaa65aeb1.png!large

5. 在文件末尾,添加以下两行代码。当执行该文件时,可自动执行文件中的所有测试方法。

be6b9624-0085-4e70-96dd-76ebe2a72994.png!large

6. 测试结果如下图。到这里,单个文件的单元测试用例就写好了。

ec1860f4-4320-4734-bed7-479768f9bc2f.png!large

扩展--整个项目的单元测试:

1. 整理出需要测试的文件和方法,分别编写对应的测试文件和测试用例。如下图,我编写了相关的测试方法。

52ed20e0-3cd2-4ef0-a237-48f9b6a11cf7.png!large

2. 批量执行:使用unittest 自动识别所有的单元测试方法,统一执行,并生成对应报告。这里,我们使用一个HTMLReport 的组件生成对应的报告,需要先通过 pip install HTMLReport 命令进行安装。

对应配置如下:

28e7e8f9-5422-4c44-8953-cb8d4d4790dd.png!large

3. 执行效果:

97fd03ec-5cc2-4656-9245-66c76819a679.png!large

生成的对应报告展示:

711e9e37-8588-4d40-b23e-0d4030a717f9.png!large

扩展--与 flask web 页面集成:

1. 在 run all 文件中,执行完成后,插入对应的记录到数据库中,保存对应的信息: 名称、报告文件、执行的开始、结束时间,等。

dff5d90d-bc66-4753-807a-4c55fd140f0a.png!large

2. 编写对应的页面,展示对应数据表的记录:

720f79f0-0d1c-4d03-b437-4dc81fff206c.png!large

3. 点击 查看结果按钮,展示对应的报告详情:

0b47f344-3666-440a-a6b1-899e16ae6c43.png!large

其中把 unittest 生成的报告以 iframe 的形式嵌套在原有的 flask web 页面中:

a127d188-0c0a-42b1-8858-4ac767e712cc.png!large

总结:

完成以上开发和配置工作后,可以在代码改动、版本更新后,通过执行单元测试,并查看对应的执行报告,判断本次改动对原有功能产生的影响范围。当然如果要做更细致的范围覆盖,需要写更多对应的单元测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值