当前位置: 首页 > news >正文

接口自动化测试SOP标准流程

课程:B站大学
接口自动化测试SOP流程

接口自动化测试-pytest

  • 第一章 文档概述
    • 1.1 背景
    • 1.2 适用范围
    • 2.2 技术栈
  • 第三章 目录结构与命名规范
    • 3.1 目录结构
    • 3.2 命名规范
    • 3.3 代码风格
    • 3.4 Git提交规范
  • 第四章 环境与依赖管理
    • 4.1 目标
    • 4.2 依赖管理
    • 4.3 环境隔离
    • 4.4 配置管理
  • 第五章 框架与用例编写规范
    • 5.1 框架分层
    • 5.2 用例模板
    • 5.3 参数化
  • 第六章 数据与环境管理规范
    • 6.1 目标
    • 6.2 生命周期
    • 6.3 数据标识
    • 6.4 幂等性
    • 6.5 环境切换
  • 第七章 报告与日志规范
    • 7.1 Allure 报告
    • 7.2 日志规范
  • 第八章 CI/CD 流水线配置(阿里云效)
    • 8.1 步骤概要
    • 8.2 执行命令
    • 8.3 触发方式
    • 8.4 质量门禁
  • 第九章 质量度量与持续改进
    • 一、核心指标总览
    • 二、实施建议(分阶段推进)
    • 三、指标采集方法(简易版)
  • SOP 执行流程图
    • 暂时无法在飞书文档外展示此内容
  • 实践是检验真理的唯一标准


第一章 文档概述

1.1 背景

随着业务系统服务化、微服务化,接口(API)已成为各系统的主要交互方式。传统手工接口测试存在:

  • 测试周期长、人工成本高;
  • 缺乏统一标准与复用机制;
  • 接口变更难快速感知;
  • 报告形式不统一,结果难追溯。

本 SOP 旨在建立标准化、可复用、可持续集成的接口自动化体系,实现结构统一、执行自动、结果可量化。

1.2 适用范围

项目类型测试阶段技术栈CI/CD 平台
RESTful / RPC / GraphQL 后端服务回归、冒烟、前置验证Python 3.10 + pytest + httpx/requests + allure + pydantic/jsonschema + docker + git + 云效(Jenkins)阿里云效 Yunxiao(流水线 API-Auto-Regression)

第二章 体系架构与技术栈说明
2.1 分层架构

测试用例层(tests/)↓
业务逻辑层(business/)↓
接口驱动层(api/)↓
基础框架层(common/)↓
CI/CD 平台层(云效 Yunxiao)

各层职责清晰、单向依赖,保证高复用与低耦合。

2.2 技术栈

Python 3.10 + pytest + httpx/requests + allure + pydantic/jsonschema + docker+git +云效(Jenkins)
2.3 运行流程
暂时无法在飞书文档外展示此内容


第三章 目录结构与命名规范

3.1 目录结构

(后续补充)

3.2 命名规范

类型规则示例
文件test_*.py*_test.pytest_order_create.py
Test*(驼峰命名)TestUserLogin
方法test_*(下划线命名)test_login_success
fixture简短小写下划线auth_clientorder_payload
配置文件env.<环境>.yamlenv.test.yaml

3.3 代码风格

使用 Black + Ruff + pre-commit 统一格式。

pip install pre-commit
pre-commit install

3.4 Git提交规范

feat: 新增功能
fix: 修复问题
docs: 文档修改
refactor: 代码重构
chore: 构建调整
test: 测试相关

第四章 环境与依赖管理

4.1 目标

保证环境可复现、依赖一致、安全管理。

4.2 依赖管理

requirements.txt依赖文件

pytest==8.3.3
httpx==0.27.2
allure-pytest==2.13.5
pydantic==2.9.2
jsonschema==4.23.0
pytest-xdist==3.6.1
loguru==0.7.2
PyYAML==6.0.2

安装:

pip install -r requirements.txt

4.3 环境隔离

conda 开发、Docker 部署。
conda create -n api-auto python=3.10
conda activate api-auto
pip install -r requirements.txt

Dockerfile 示例:

FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY . .
ENTRYPOINT ["pytest","-m","smoke or regression","--alluredir=reports/allure-results"]

4.4 配置管理

项目结构落地优化后更新为最新版本

config/
├─ env.dev.yaml
├─ env.test.yaml
├─ env.stage.yaml
└─ settings.yaml

通过 RUN_ENV 环境变量切换。


第五章 框架与用例编写规范

5.1 框架分层

  • common/client.py → BaseApiClient 封装HTTP请求与鉴权。
  • api/ → 接口层封装具体业务API。
  • tests/ → 用例层。
  • common/assertions.py → 统一断言模块。

5.2 用例模板

import pytest, allure
from api.order_api import OrderApi
from common.assertions import assert_status_json

@allure.epic(“订单系统”)
@allure.story(“创建订单接口”)
@pytest.mark.regression
def test_order_create_success(auth_client, order_payload):
resp = auth_client.create_order(**order_payload)
assert_status_json(resp, 201)

5.3 参数化

@pytest.mark.parametrize(“user,pwd,code”,
[(“tester”,“123456”,200),(“tester”,“wrong”,401)])
def test_login(user,pwd,code):


第六章 数据与环境管理规范

6.1 目标

保证测试数据独立、可追踪、可清理、可重复。

6.2 生命周期

[测试前] 数据准备 → [执行中] 用例执行 → [测试后] 数据清理

6.3 数据标识

@pytest.fixture(scope=“session”)
def test_run_tag():import uuidreturn f"X-Test-Run-{uuid.uuid4()}"

6.4 幂等性

使用 idempotency_key 确保多次执行返回一致结果。

6.5 环境切换

通过 RUN_ENV 控制环境加载,YAML 配置 + 云效机密变量注入。


第七章 报告与日志规范

7.1 Allure 报告

pytest --alluredir=reports/allure-results
allure generate reports/allure-results -o reports/allure-report --clean

使用 @allure.title、@allure.story 增强报告信息。

7.2 日志规范

使用 loguru 统一输出:
{time} | {level} | {module} | {message}
失败用例自动将日志附加到 Allure 报告。


第八章 CI/CD 流水线配置(阿里云效)

8.1 步骤概要

1️⃣ 安装依赖 2️⃣ 执行测试 3️⃣ 生成 Allure 报告 4️⃣ 上传制品 5️⃣ 发布报告。

8.2 执行命令

pip install -r requirements.txt
pytest -m "regression or smoke" --alluredir=reports/allure-results
allure generate reports/allure-results -o reports/allure-report --clean

8.3 触发方式

  • 手动执行
  • 定时任务 (每日 20:00)
  • 代码 push/MR 触发

8.4 质量门禁

失败率 > 5% 或关键 smoke 用例失败 → 阻断发布。


第九章 质量度量与持续改进

一、核心指标总览

序号指标名称定义/计算公式数据来源目标值(建议)说明
1用例通过率 (Pass Rate)通过用例数 ÷ 总执行用例数 × 100%Allure 报告 / pytest 结果≥95%衡量脚本与环境稳定性,是最直观的质量指标。
2不稳定用例比例 (Flaky Rate)重试成功用例 ÷ 总用例数 × 100%Allure retries.json≤5%反映测试脚本或环境波动情况。
3平均执行时长 (Avg Duration)总执行时间 ÷ 用例数量Allure summary / pytest 执行日志≤5 秒/用例衡量执行效率与测试反馈速度。
4接口自动化覆盖率已自动化接口数 ÷ 系统接口总数 × 100%Swagger / 用例统计≥50%衡量自动化覆盖深度与建设进展。
5缺陷发现效率 (Defect Efficiency)自动化发现缺陷数 ÷ 执行次数缺陷管理系统 / 执行日志≥0.1(每 10 次执行至少发现 1 个缺陷)衡量自动化对质量的实际贡献。

二、实施建议(分阶段推进)

阶段目标建议操作工具与方法
阶段一:建立执行体系能稳定运行并产出报告使用 pytest + allure,记录每次执行结果allure summary.json
阶段二:提升稳定性用例失败率低于 5%启用 pytest-rerunfailures 插件,统计 flaky 用例pytest + allure retries
阶段三:优化效率平均执行时长 ≤ 5 秒开启 pytest-xdist 并行执行pytest -n auto
阶段四:扩大覆盖率自动化覆盖率 ≥ 50%新增接口时同步编写自动化用例对比 Swagger 与 api 目录
阶段五:衡量产出价值缺陷发现效率 ≥ 0.1在缺陷系统标注"来源=自动化"Jira / Tapd 统计报表

三、指标采集方法(简易版)

  1. 用例通过率
  • 查看 Allure 报告首页 “Passed / Failed / Broken” 数据;
  • 公式:通过率 = Passed ÷ (Passed + Failed + Broken)。
  1. 不稳定用例比例
  • 查看 Allure 报告 “Retries” 模块;
  • 计算 flaky ÷ total × 100%。
  1. 平均执行时长
  • 查看 Allure “Duration” 图表;
  • 计算 duration ÷ total。
  1. 自动化覆盖率
  • 对比 Swagger API 总数与项目 api/ 文件夹中的自动化接口数量。
  • 后续统计接口总数
  1. 缺陷发现效率
  • 从 Jira/Tapd 缺陷系统中筛选字段 “来源=自动化”,
    统计发现缺陷 ÷ 执行次数。

“三看两算”:
看通过率(质量)、看覆盖率(进展)、看缺陷发现率(价值)
算平均时长(效率)、算不稳定率(健康度)

指标周期性统计(周 / 月 / 季度),形成自动化质量报告。


SOP 执行流程图

暂时无法在飞书文档外展示此内容

实践是检验真理的唯一标准

http://www.dtcms.com/a/575040.html

相关文章:

  • 如何在需求收集阶段避免遗漏关键用户?
  • 在Windows上部署RAGFlow
  • Python每日一练---第六天:罗马数字转整数
  • 东莞网站平台价格网站建设判断题
  • C/C++ char类型字符串直接赋值与分配内存赋值的区别
  • apache 建立网站优化网站搜索排名
  • 再论大模型不能通向AGI
  • 手机网站 动态 页面 好 静态页面好养猪网站建设规划书
  • 用 C 语言实现的回调函数案例,涵盖基础用法及不同消息机制(GUI 模拟、网络请求模拟、状态机、消息队列)
  • wordpress站群软件带网站的图片素材
  • 营销管理网站东莞市微客巴巴做网站
  • 龙华网站(建设信科网络)基层建设期刊在哪个网站上检索
  • PLCSIM影响我们的Ssh通信
  • 修文县生态文明建设局网站通号建设集团有限公司
  • 杭州开发区网站建设php网站作业模版
  • 网站菜单样式网站的例子
  • 嘉兴网站建议wordpress 编辑器 视频
  • 成品网页网站本地专业app开发公司在哪里
  • 清苑区建设局网站wordpress恢复主题初始值
  • 亿网行网站建设114企业网网站架构软件
  • 网站组织结构图深圳市建设交易网站
  • 做网站和seo流程南宁建设网站培训
  • 系列文章<八>(从LED显示屏的Gamma过曝问题问题到手机影像):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 【咨询】Android Studio 第三方手机模拟器对比【202511】
  • 服装类的网站建设营销型网站定做
  • a5建站长宁免费网站制作
  • 做企业网站找谁全自动行业管理系统
  • ubuntu下安装transition_amr_parser
  • 理财网站开发成都市区必去的景点
  • 网站 建设 网站设计公司微信运营是做什么的