手把手教你从0开始实施企业级接口自动化测试项目
本篇将收获:
搭建项目框架,Python+Pytest+Allure
配置host,封装登录接口,md5加密实现
用faker类库构建入参测试数据
封装读取Excel
运用pytest框架
生成allure测试报告
实现测试用例:验证所有入参是否必填
实现测试用例:验证所有入参是否必传
01
—
项目基本结构框架
项目基本结构框架(分层):
config 配置文件
data 测试数据文件
lib 存放实现api访问的文件
log 日志文件
report 测试报告
test_case 测试用例
util 工具类
02
—
配置host · 登录 · md5加密
配置host的好处,不用多说
新建config/config.py,配置:
如何引用,举例:lib/Login.py
上图中,md5的加密实现:util/Md5Psw.py
03
—
faker 构建测试数据
类似 lib/Login.py ,新建:lib/CreatePres.py
接口参数少的情况下,比如 Login,通常只有用户名、密码这两个,手工构建测试数据比较容易,可以采用读取Excel中的入参和期望值,驱动自动化测试
而在企业中,一个接口的入参是很多的,比如 CreatePres接口的基础入参有25个,我们可以采用faker类库,构建测试数据,让入参json引用构建好的变量值
04
—
Excel 读取方法封装
数据驱动,代码和数据分离,方便测试数据的维护
在data/Login.xls 编写我们的测试数据
封装Excel读取数据,新建 util/ExcelHandle.py
05
—
Pytest 实现数据驱动
接下来,引入pytest测试框架,pytest测试文件的命名规则:
测试文件必须以test开头,或_test结尾
测试类必须以Test开头,并且不能有init方法
测试方法必须以test_开头
断言必须用assert
实现Login,新建 test_case/test_login.py
06
—
Allure 生成测试报告
Windows安装allure,下载allure.zip,解压到一个目录中,把目录中的bin路径添加到环境变量path
Mac 安装allure,键入命令:brew install allure
python安装:pip install allure-pytest
输入命令验证是否安装成功:allure
cd到test_case所在目录,键入命令:
pytest -sq --alluredir=../report/tmp
执行命令,生成测试报告:
allure generate ../report/tmp -o ../report/report --clean
生成完成,在../report/report目录下,用浏览器打开html文件就是报告
或者,用命令生成完成后,直接打开浏览器展示测试报告:
allure serve ../report/tmp
07
—
逐一验证String入参是否必填
在前边「04」,我们通过把入参写在Excel的方式,实现了Login接口的各个参数是否必填的测试。Login的入参少,这样设计还算方便,但是如果换作CreatePres接口,就很崩溃了,25个入参,难道复制25份,逐一把这25个入参换成空,发送调用接口吗?显然不现实
先看一下接口文档,第1列字段名称中的「.」说明了入参的层级关系
我们把第2列字段类型为「String」的数据筛选出来,将其入参中对应第1列key的值替换为空。即模拟:org_name为空,其它项目正确填写,发送调用接口,获取返回数据
封装方法,新建util/DataHandle.py
在测试用例中调用,test_case/test_create_pres:
08
—
逐一验证入参是否必传
我们常用的接口测试用例,比如正常应传入2个参数,那只传入1个会怎样呢?下边我们来模拟,CreatePres接口的25入参,逐一不传入某个参数,验证后台代码有无正确处理
在util/DataHandle.py,添加方法:
再在test_case/test_create_pres中建立对应的测试用例,即完成