本接口测试框架使用python语言实现,基于pytest测试框架,同时集成Jenkins和Allure

核心特性

封装requests请求,使用装饰器模式

详细的请求日志输出

环境与数据隔离,实现不同环境不同数据

测试用例支持参数化和数据驱动机制

使用allure测试报告,测试结果统计报告简洁清晰

集成Jenkins,实现持续集成

连接企业和个人微信告警消息系统

文件结构

framework文件夹

将requests库进行二次封装,可直接使用装饰器进行请求,例子如下:


请求.png

api文件夹

主要存放项目的所有接口请求,建议一个项目一个文件,思路为创建一个类,而初始化方法调用登录接口,即创建一个类对象就创建了一个用户,保证后续使用时可创建多个用户


api.png

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文件夹

存放测试用例


testcase.png

jsonSchema文件夹

存放断言返回字段以及类型的jsonSchema文件


ya.png

data文件夹

写测试用例时需要的一些固定id,唯一值,数据库取值等,比如登录账户,查看文章详情需要id,审核时需要的id(先生成记录然后数据库读取记录 or teardown时修改数据库状态值进行数据恢复),唯一的邮箱/手机号/身份证等......

log文件夹

存放日志

Jenkins集成与Allure测试报告

前置条件:

系统管理--插件管理:安装插件allure、安装Parameterized Trigger

系统管理--全局工具配置:配置Allure Commandline


image.png

新建自由风格的job,进入job配置页面,参数化构建

这里的environment就是代码中需要的环境变量,用于切换环境


构建.png

源码管理


配置git.png

配置分支


分支参数化.png

4、构建脚本


构建.png

构建后生成Allure测试报告


构建配置.png


效果.png

构建后触发新的job(即告警系统)

告警系统为一个独立的job,通过这个配置将当前job的一些参数传递给后一个job


告警.png

告警系统使用参数化构建

告警系统主要实现功能是实时发送构建结果给企业或个人微信用户,代码逻辑主要是调用Jenkins API获取构建结果、调用企业微信API获取token并发送消息


告警系统.png