Unittest + Tdata + Allure 接口自动化测试流程记录


前言

简单记录分享下接触的第一个接口自动化测试项目,如何从 0-1 编写自动化用例流程


单接口自动化测试

  • 入参:接口字段参数类型、是否必传、范围限制、边界值验证
  • 回参:返回值类型、数据预期检查
  • 单接口各字段的接口关联
  • 正常、异常场景测试
  • 接口性能指标
  • 安全性检查

业务组合接口测试 – E2E

  • 业务流驱动测试:业务组合、多接口串联成一个业务(按照业务流进行测试)
  • 模拟真实用户使用场景(真实数据)

一、自动化框架

1. 基本介绍

  • Unittest 框架:官方文档

  • Tdata 数据驱动:主要解决测试用例和数据分离

    # 数据解析
    fresh_parse_data(cls, selector=None, case_name=None, tdata=None, **kwargs)
    
    # 数据更新
    update_tdata(cls, data, selector, case_name=None, tdata=None)
    

数据驱动:数据和用例步骤分离,通过 yaml、excel 等文件保存数据,将测试用例里的数据提取到文件中,通过改变文件中数据驱动测试用例执行 – 数据存储,通过解析数据进行驱动测试

  • 用例流调用 :case --> step --> client
    case:采用 tdata “!” 引用,数据一般不能写死,如果环境/账号/后端服务变更就跑不过了
    step:不做复杂计算,严格按照 “解析参数 - 请求 - 更新 | teardown”
    client:封装尽量通用,注释与 tdata 字段强关联(必传参数 [x],非必传参数 [])

  • Allure 测试报告:
    按照标签以作者进行构建 @attr(*args: “P0”, Author.Ohhhzm)

    # run_test_case.py
    if __name__ == '__main__':
    	run(attr=Author.Ohhhzm, report_type='ALLURE', log='INFO')
    

二、用例编写整体流程

1. 获取接口文档,分析接口流程和参数

输出自动化测试用例设计

2. 服务注册

定义被测服务 – 在 service_conf.py 增加服务定义

3. 环境配置

  • 在 env/init.py 增加环境定义
  • xxx_env.py 添加待测服务的环境信息(域名 host)、请求头信息、接口信息 – 可以包含多个服务

4. 消息模板

  • 定义:底层解析参数时,没有参数则读取消息模板参数,如消息模板没有,则接口无参数请求
  • 作用:接口测试的默认传参,适用于接口字段多,且通过传参复杂

5. 用例编写

  • 用例文件一般组成:导包、前后置处理、用例
  • 前置:一般为定义用例构建环境、用例待测服务、前置处理等
  • 后置:主要为一些清理机制(如关闭测试套、其他清理工作)
  • 用例:
    • test_xxx 开头函数定义
    • 增加 @attr(“P0”) 代表用例优先级
    • 函数名称为用例 id
    • 注释为用例标题
  • 数据与脚本分离:参数处理下移至底层封装,让用例看起来清晰简单,没有复杂数据处理动作,同时各个用例之间可以共用 client

三、总结

1、使用 Tdata 做数据驱动,其实就是 数据解析 + 数据更新
2、理解数据流调用链:“case 用例” 到 “step 步骤” 再到 “client API”
3、client 底层抽象为 API,尽量覆盖正向、异常用例

(API 可视化可采用 Swagger,可视化效果好)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohhhzm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值