ApiTesting全链路接口自动化测试框架 - 初版(一)
发布日期:2021-05-09 04:23:12 浏览次数:22 分类:精选文章

本文共 2177 字,大约阅读时间需要 7 分钟。

接口自动化测试框架详解

1.框架概述

本框架为Python+Pytest+Requests+Allure+Yaml+Json组成的接口自动化测试解决方案,旨在简化测试流程,提升效率,适用于大数据业务和多依赖接口场景。通过自动化解析接口数据包,自动生成测试用例和脚本,减少手动编写的工作量,确保测试的可维护性和扩展性。


2.主要功能模块

2.1 接口数据解析

  • 从Charles工具导出的接口数据包中提取所需信息,自动解析接口基本信息、请求参数和返回数据。
  • 支持多种数据格式存储,复杂数据单独保存为JSON文件,确保数据管理的灵活性。

2.2 前置接口处理

  • 自动识别并处理前置接口的依赖关系,通过指定相对路径调用前置接口,无需手动编写关联数据。
  • 提供替换关联值功能,自动处理前置接口返回的关联参数。

2.3 参数化处理

  • 采用常用变量标识符 ${var},通过正则表达式自动检索变量。
  • 提供多种函数助手,包括随机数生成、日期时间生成、唯一标识生成等,帮助构建多样化测试数据。

2.4 测试脚本生成

  • 基于模板文件,复制并修改相关字段,生成适配具体测试用例的测试脚本。
  • 支持多线程执行和失败重试,提升测试效率和稳定性。

2.5 测试结果校验

  • 提供多种校验方式,包括不校验、仅校验状态码、JSON格式校验、完全校验和正则匹配校验。
  • 结合Allure生成测试报告,详细记录测试过程和结果。

2.6 测试报告生成

  • 自动生成Allure报告,支持HTML和XML格式导出,便于测试结果的可视化和分析。

3.运行模式

框架支持四种运行模式,满足不同开发需求:

  • 0 - 不开启自动生成功能

    • 直接运行现有测试脚本,无需生成新用例。
  • 1 - 手动编写用例

    • 根据手写的测试用例自动生成对应的测试脚本,然后执行测试。
  • 2 - 接口抓包驱动

    • 根据接口数据包自动生成完整的测试用例和脚本,并运行测试。
    • 适用于无需手动编写测试用例的场景。
  • 3 - 生成测试用例和脚本

    • 根据接口数据包生成测试用例和脚本,但不执行测试。
    • 适用于需要提前审阅测试脚本的场景。

  • 4.核心代码解析

    框架核心代码主要包括以下几个模块:

    4.1 接口数据解析

    • writeCaseYaml.py:从Charles导出的JSON Session File中提取接口信息,生成测试用例和参数文件。
    • writeCase.py:根据指定路径生成测试脚本,支持模板替换和参数替换。

    4.2 测试脚本执行

    • apiSend.py:封装了发送接口请求的逻辑,支持多种HTTP方法和文件上传。
    • initializePremise.py:处理前置接口和关联值,确保测试环境的一致性。

    4.3 测试结果校验

    • checkResult.py:提供多种校验方式,确保接口返回结果的准确性。
    • 结合Allure工具,生成详细的测试报告。

    4.4 功能助手

    • randomly.py:提供随机数、日期时间、GUID等功能,辅助测试数据的生成。
    • replaceRelevance.py:处理变量替换和表达式计算,提升数据的动态性。

    5.项目结构

    框架的项目目录结构为:

    MyTest/├── startup.py          # 启动脚本,处理运行模式和日志初始化├── runConfig.yml       # 运行配置说明├── test_template.py    # 测试脚本基础模板├── apiConfig.yml       # 接口配置示例├── test.yaml          # 测试用例说明├── allure.html        # 测试报告示例└── requirements.txt    # 项目依赖管理

    6.使用步骤

  • 环境准备

    • 安装依赖:pip install -r requirements.txt
    • 使用PyCharm或其他IDE打开项目,自动下载并安装依赖。
  • 接口数据收集

    • 使用Charles工具抓包,导出JSON Session File(.chlsj格式)。
  • 配置项目

    • 新建MyTest目录和data子目录,将抓取的接口数据包放入。
    • 修改runConfig.yml中的项目名为MyTest
  • 运行测试

    • 根据运行模式选择:
      • python startup.py(默认运行模式0)
      • python startup.py 2(接口驱动模式,自动生成并运行测试)
  • 查看测试报告

    • 测试完成后,生成allure报告,查看allure.html文件。

  • 7.优化建议

  • 代码优化

    • 将常用功能模块提取为单独的函数或类,提升代码可读性。
    • 引入缓存机制,减少重复计算和数据库查询。
  • 日志优化

    • 增加日志级别,区分信息日志、警告和错误,方便排查问题。
    • 支持日志输出到控制台和文件,提升监控能力。
  • 扩展功能

    • 集成数据库连接模块,支持多种数据库类型的校验。
    • 提供数据差异检测功能,识别新增或修改的数据项。
  • 性能优化

    • 对高频接口添加重试机制,避免因网络问题导致失败。
    • 引入并发执行,提升测试效率。

  • 8.总结

    本框架通过自动化处理接口数据和测试流程,显著降低了手动编写和维护测试用例的工作量。其灵活性和扩展性使其适用于复杂的接口自动化测试场景,尤其适合大数据业务和多依赖接口的系统。未来计划加入数据库校验模块,进一步提升测试全面性和准确性。

    上一篇:ApiTesting全链路接口自动化测试框架 - 实战应用
    下一篇:【转载】K8s-Pod时区与宿主时区时区同步

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年05月01日 22时26分49秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章