基于python接口自动化框架搭建_pytest+jenkins+allure

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

核心特性

  1. 封装requests请求,使用装饰器模式
  2. 详细的请求日志输出
  3. 环境与数据隔离,实现不同环境不同数据
  4. 测试用例支持参数化和数据驱动机制
  5. 使用allure测试报告,测试结果统计报告简洁清晰
  6. 集成Jenkins,实现持续集成
  7. 连接企业和个人微信告警消息系统

文件结构

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


    基于python接口自动化框架搭建_pytest+jenkins+allure_第1张图片
    请求.png
  2. api文件夹
    主要存放项目的所有接口请求,建议一个项目一个文件,思路为创建一个类,而初始化方法调用登录接口,即创建一个类对象就创建了一个用户,保证后续使用时可创建多个用户


    基于python接口自动化框架搭建_pytest+jenkins+allure_第2张图片
    api.png
  3. 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
  1. testsuites文件夹
    存放测试用例


    基于python接口自动化框架搭建_pytest+jenkins+allure_第3张图片
    testcase.png
  2. jsonSchema文件夹
    存放断言返回字段以及类型的jsonSchema文件


    基于python接口自动化框架搭建_pytest+jenkins+allure_第4张图片
    ya.png
  3. data文件夹
    写测试用例时需要的一些固定id,唯一值,数据库取值等,比如登录账户,查看文章详情需要id,审核时需要的id(先生成记录然后数据库读取记录 or teardown时修改数据库状态值进行数据恢复),唯一的邮箱/手机号/身份证等......

  4. log文件夹
    存放日志

Jenkins集成与Allure测试报告

前置条件:
系统管理--插件管理:安装插件allure、安装Parameterized Trigger
系统管理--全局工具配置:配置Allure Commandline


基于python接口自动化框架搭建_pytest+jenkins+allure_第5张图片
image.png
  1. 新建自由风格的job,进入job配置页面,参数化构建
    这里的environment就是代码中需要的环境变量,用于切换环境


    基于python接口自动化框架搭建_pytest+jenkins+allure_第6张图片
    构建.png
  2. 源码管理


    基于python接口自动化框架搭建_pytest+jenkins+allure_第7张图片
    配置git.png
  3. 配置分支


    基于python接口自动化框架搭建_pytest+jenkins+allure_第8张图片
    分支参数化.png

4、构建脚本


基于python接口自动化框架搭建_pytest+jenkins+allure_第9张图片
构建.png
  1. 构建后生成Allure测试报告


    基于python接口自动化框架搭建_pytest+jenkins+allure_第10张图片
    构建配置.png

    基于python接口自动化框架搭建_pytest+jenkins+allure_第11张图片
    效果.png
  1. 构建后触发新的job(即告警系统)
    告警系统为一个独立的job,通过这个配置将当前job的一些参数传递给后一个job


    基于python接口自动化框架搭建_pytest+jenkins+allure_第12张图片
    告警.png
  2. 告警系统使用参数化构建
    告警系统主要实现功能是实时发送构建结果给企业或个人微信用户,代码逻辑主要是调用Jenkins API获取构建结果、调用企业微信API获取token并发送消息


    基于python接口自动化框架搭建_pytest+jenkins+allure_第13张图片
    告警系统.png

你可能感兴趣的:(基于python接口自动化框架搭建_pytest+jenkins+allure)