zoukankan      html  css  js  c++  java
  • 基于unittest测试框架的扩展

    1 unittest介绍

       Unittest,Python自带的单元测试框架,PyUnit类包含TestResult,TestCase, TestSuite,TextTestResult,TextTestRunner几个类,

    然后结合HTMLTestRunner.py。其关系如下:

    但unittest作为一个自动化测试框架还是存在很多不足的,下面是unittest工作流程及部分不足点:

    2 unitest缺点分析及扩展

    从上面可以看到unittest作为一个自动化测试框架最少存在以下几方面的不足:

         a   测试脚本和测试数据全部在测试类了,评审,修改都需要跟代码打交道,增加难度。

         b   一组测试数据对应一个测试方法,脚本冗余。

         c   测试报告中显示以模块,类,方法为维度,不直观。

    针对a,增加loadModul,loadTestClassFromModules(获取测试类及方法),creatTestCaseDataByPath(获取用例数据) ;

    针对b, 增加ParametrizedTestCase(参数化读取测试数据);

    针对c, 修改HTMLTestRunner.py模块中相关测试结果显示标题。

    相关类图及运行流程见下:

    相关源代码见: https://gitlab.com/opg.li.taojun/unittestExBase.git

    3 unittest扩展后用例说明及演示

    测试用例格式:

    对应测试类:

    测试结果显示:

     

       测试类继承ParametrizedTestCase,增加成员__interfaceName__,其值为对应的测试的接口名称,和测试用例中的interfaceName对应,方法名称和测试用例中的operationSteps对应。

    相关例子见:https://github.com/litaojun/unittestExtend.git

    下载后运行python testcaseRunMgr "例子所在路径"

  • 相关阅读:
    Git 安装
    golang学习笔记--struct同时用于bson json
    golang学习笔记--struct、json、map互相转化
    IDEA关联不同项目源码
    xss攻击atob
    maven设置编辑级别,设置编码来源
    AppleScript创建新文件
    Java线程池吃掉异常整理
    docker 启动中间件整理
    docker container启动之后 命令更新
  • 原文地址:https://www.cnblogs.com/xywq/p/7298068.html
Copyright © 2011-2022 走看看