pgup12 发表于 2018-1-12 19:12:32

基于unittest测试框架的扩展

  1 unittest介绍
  Unittest,Python自带的单元测试框架,PyUnit类包含TestResult,TestCase, TestSuite,TextTestResult,TextTestRunner几个类,
  然后结合HTMLTestRunner.py。其关系如下:
https://images2017.cnblogs.com/blog/723539/201708/723539-20170807105800752-2011382141.png
  但unittest作为一个自动化测试框架还是存在很多不足的,下面是unittest工作流程及部分不足点:
https://images2017.cnblogs.com/blog/723539/201708/723539-20170807110547971-776164610.png
  2 unitest缺点分析及扩展
  从上面可以看到unittest作为一个自动化测试框架最少存在以下几方面的不足:
  a   测试脚本和测试数据全部在测试类了,评审,修改都需要跟代码打交道,增加难度。
  b   一组测试数据对应一个测试方法,脚本冗余。
  c   测试报告中显示以模块,类,方法为维度,不直观。
  针对a,增加loadModul,loadTestClassFromModules(获取测试类及方法),creatTestCaseDataByPath(获取用例数据) ;
  针对b, 增加ParametrizedTestCase(参数化读取测试数据);
  针对c, 修改HTMLTestRunner.py模块中相关测试结果显示标题。
  相关类图及运行流程见下:
https://images2017.cnblogs.com/blog/723539/201708/723539-20170807114057424-488573313.png
  相关源代码见: https://gitlab.com/opg.li.taojun/unittestExBase.git
  3 unittest扩展后用例说明及演示
  测试用例格式:
  https://images2017.cnblogs.com/blog/723539/201708/723539-20170807152802018-2081343004.png
  对应测试类:
https://images2017.cnblogs.com/blog/723539/201708/723539-20170807164345330-1787274820.png
  测试结果显示:
https://images2017.cnblogs.com/blog/723539/201708/723539-20170807164214112-651509210.png
  测试类继承ParametrizedTestCase,增加成员__interfaceName__,其值为对应的测试的接口名称,和测试用例中的interfaceName对应,方法名称和测试用例中的operationSteps对应。
  相关例子见:https://github.com/litaojun/unittestExtend.git
  下载后运行python testcaseRunMgr "例子所在路径"
页: [1]
查看完整版本: 基于unittest测试框架的扩展