python3 unittest 做接口自动化测试
业界较为常用的是用robot framework做接口自动化测试,常用的原因是在积累大量关键字后,普通测试人员也可上手工作。这种方式的缺陷是测试不太容易接触到编码的过程,对于从事测试开发的工程师来说不是特别友好。
再谈谈接口自动化,用python的原因是编程速度较快,速度优势;python3的原因,不需要特别处理中文编码问题,很便捷。
用unittest的原因,使用单元测试框架,便于管理,将来做其他语言的白盒测试也更容易切入。
python3 单元测试的方法官方的和另外一个同学写的都不错,这里直接引用。
unittest — Unit testing framework
本文着重讲述测试架构设计,命名规范以及报告发送。
我们先谈谈架构设计
每个系统都有自己的服务,每个服务都有不同的场景,不同的系统,同一个服务不同的场景都会存在不同的人维护。
系统级别思路如下
一个目录对应一个系统
一个目录下面存在N个文件,每个文件对应一个服务的场景
每个文件内包含多个test case,用作check point
支持多人对一个目录下不同的文件同时工作
每个文件均可单独执行
系统级别testsuite
当一个目录下包含很多文件后,存在批量跑的需求,建立testsuite 包含目录下所有文件
全局管理
存在多个系统一起去跑的需求,python unit 支持 suite include suite,故架构如下
global test suite
test suite A test suite B
test file A test file B test file C ......
test case A test case B .................. .... ,,,
最终,我们实现可以单独跑 test file 也可以单独跑 test suite ,更可以全量跑 test suite
命名规范
python unit的文件和目录名必须不同,并且支持中文
test suite 系统名 搜索
test file 系统名+四位数字 搜索-0001 搜索-0002
class name 场景描述 搜索一条数据
公共方法
存在每个test file or test suite都需要调用的公共方法
在 global test suite 文件同一位置设置公共函数文件,每个test case 都可以import
HTMLTestRunner 每个test suite import 都可以生成报告
代码上传至网盘