api-testing

Solid

API testing from OpenAPI/Swagger or case schemas: parameters, boundaries, auth, idempotency, concurrency, error responses, data consistency; runnable scripts; k6 handoff. Not for: Web UI flows, manual case writing. 接口级测试:参数/边界/鉴权/幂等/并发/错误响应/数据一致性,产出脚本与结果;含 k6 压测。不用于:Web UI、手动用例。

Testing & QA 28 stars 4 forks Updated 3 days ago MIT

Install

View on GitHub

Quality Score: 87/100

Stars 20%
49
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# API 测试(api-testing) 接口级测试——E2E 之外的另一条执行路径。 - **输入**:API 文档(OpenAPI/Swagger)、用例 Schema 中 `execution_model` 可自动化的接口用例、被测环境信息(base URL、账号/Token);性能轴(类型矩阵轴 1)移交包 `专项移交_性能_*.yaml` - **输出(落盘)**:API 测试脚本(pytest + requests,或项目既定技术栈)+ 执行分报告 `测试报告_api_{日期}.md`(命名按 `../core/report-template.md` 头注,条目按其 §3 对齐;qa 断点判据按此文件名核收);性能承接时另产 k6 压测脚本与压测报告(`references/k6-conventions.md`) - **边界**:Web UI 流程 → `automated-e2e-testing`;接口手动用例设计 → `test-case-writing` ## When to Use - 给定 OpenAPI/Swagger 文档,需要产出并运行接口自动化测试 - 从用例 Schema 中筛出接口级可自动化用例,转换为 API 脚本执行 - 需要覆盖鉴权/越权、幂等、并发写、错误响应等接口层专项 - 给定性能移交包或接口清单,需要生成并运行压测脚本(k6)——按 `references/k6-conventions.md` ## When NOT to Use - Web UI 交互流程(点击 / 页面状态)→ `automated-e2e-testing` - 编写接口的手动测试用例 → `test-case-writing` - 端到端流水线 → `qa` 编排 - 独立压测环境搭建与容量保障 → 运维/专项协作(agent 侧压测承接见 `references/k6-conventions.md`;外部执行场景按 `test-strategy` 的移交包) - Mock Server 搭建 → 开发协作事项,不在本 skill 范围 ## 脚手架(默认 pytest + requests,可替换为项目既定栈) ```text api-tests/ ├── conftest.py # fixture:base_url、会话/Token、环境配置(环境变量注入,可由 .env 加载,不硬编码) ├── common/ │ └── client.py # 统一请求封装:日志、超时、鉴权头、断言辅助 ├── test_{模块}_{接口}.py # 一个接口一个文件,test 名沿用 TC 编号 └── requirements.txt ``` ```python # common/client.py —— 统一请求封装(requests.Session 不支持 base_url,必须显式拼接) import requests class Client: def __init__(self, base_url: str, token: str): self.base_url = base_url.rstrip("/") self.s = requests.Session() self.s.headers.update({"Authorization": f"Bearer {token}"}) de...

Details

Author
fishzjp
Repository
fishzjp/qa-skills
Created
2 months ago
Last Updated
3 days ago
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category