本接口测试框架使用python语言实现,基于pytest测试框架,同时集成Jenkins和Allure
核心特性
- 封装requests请求,使用装饰器模式
- 详细的请求日志输出
- 环境与数据隔离,实现不同环境不同数据
- 测试用例支持参数化和数据驱动机制
- 使用allure测试报告,测试结果统计报告简洁清晰
- 集成Jenkins,实现持续集成
- 连接企业和个人微信告警消息系统
文件结构
-
framework文件夹
将requests库进行二次封装,可直接使用装饰器进行请求,例子如下:
-
api文件夹
主要存放项目的所有接口请求,建议一个项目一个文件,思路为创建一个类,而初始化方法调用登录接口,即创建一个类对象就创建了一个用户,保证后续使用时可创建多个用户
config文件夹
主要用于环境配置,使用代码方式可以实现环境的一键切换,同时也便于集成Jenkins
# env.py
class QAFC:
# 用户中心
XG_USER_CENTER = 'http://****.ops.com'
# 后台登录
TUBOBO_MANAGE_LOGIN = 'http://******.ops.com'
# 网关
GATEWAY_URL = 'http://****.ops.com'
class UAT:
# 用户中心
XG_USER_CENTER = 'http://******/xgusercenter'
# 后台登录
TUBOBO_MANAGE_LOGIN = 'http://*****.com'
# 网关
GATEWAY_URL = 'http://*****.com'
class DEV:
# 新光用户中心
XG_USER_CENTER = 'http://*****.ops.com'
# 后台登录
TUBOBO_MANAGE_LOGIN = ''
# 网关
GATEWAY_URL = 'http://******/pos-engine'
# 设置环境,主要是为了后续Jenkins集成,读取环境变量
env = os.getenv('environment', 'dev')
if env == "qafc":
CONFIG = QAFC
elif env == "dev":
CONFIG = DEV
elif env == "uat":
CONFIG = UAT
else:
CONFIG = QAFC
-
testsuites文件夹
存放测试用例
-
jsonSchema文件夹
存放断言返回字段以及类型的jsonSchema文件
data文件夹
写测试用例时需要的一些固定id,唯一值,数据库取值等,比如登录账户,查看文章详情需要id,审核时需要的id(先生成记录然后数据库读取记录 or teardown时修改数据库状态值进行数据恢复),唯一的邮箱/手机号/身份证等......log文件夹
存放日志
Jenkins集成与Allure测试报告
前置条件:
系统管理--插件管理:安装插件allure、安装Parameterized Trigger
系统管理--全局工具配置:配置Allure Commandline
-
新建自由风格的job,进入job配置页面,参数化构建
这里的environment就是代码中需要的环境变量,用于切换环境
-
源码管理
-
配置分支
4、构建脚本
-
构建后生成Allure测试报告
-
构建后触发新的job(即告警系统)
告警系统为一个独立的job,通过这个配置将当前job的一些参数传递给后一个job
-
告警系统使用参数化构建
告警系统主要实现功能是实时发送构建结果给企业或个人微信用户,代码逻辑主要是调用Jenkins API获取构建结果、调用企业微信API获取token并发送消息