AI接口测试

目录

一、测试用例

二、脚本编写

1.生成测试用例

2.生成测试脚本

3.手动优化

数据依赖

[参数化 pytest.mark.parametrize](#参数化 pytest.mark.parametrize)

三、需求分析与用例设计

四、搭建项目框架

脚本生成


一、测试用例

复制代码
指令:请根据以下接⼝信息,帮我⽣成完整的测试⽤例列表。要求覆盖正常情况、边界情况、异常输
⼊、安全测试场景。
背景信息:注册接⼝请求参数包含⽤⼾名、密码和邮箱三个字段,⽤⼾名必填,⻓度3-16,密码必填,
⾄少8位,包含字⺟和数字,邮箱必填,符合邮箱格式
输⼊:接⼝信息如下:
POST /api/user/register
请求参数:
- username: string
- password: string
- email: string
输出:⽤表格形式展⽰,包括:⽤例编号、测试⽬标、输⼊参数、预期结果。
复制代码
请根据以下接⼝信息,帮我⽣成完整的测试⽤例列表。要求覆盖正常情况、边界情况、异常输⼊、
安全测试场景。⽤表格形式展⽰,包括:⽤例编号、测试⽬标、输⼊参数、预期结果
接⼝信息如下:
POST /api/user/register
请求参数:
- username: string(必填,⻓度3-16)
- password: string(必填,⾄少8位,包含字⺟和数字)
- email: string(必填,符合邮箱格式)

二、脚本编写

复制代码
请帮我使⽤Python和requests库,⽣成⼀个接⼝测试脚本,接⼝信息如下:
接⼝地址:POST https://api.example.com/user/register
请求参数:
- username: string(必填)
- password: string(必填)
- email: string(必填)
测试⽬标:验证正常注册⽤⼾时接⼝返回200,并返回JSON中包含字段"success": true。
请⽣成可执⾏脚本,并附带断⾔。
复制代码
请根据以下接⼝信息⽣成覆盖全⾯的测试⽤例:
POST http://8.137.19.140:9090/user/login
请求参数form-data:
{
"username": "zhangsan",
"password": "123456"
}
⽣成要求:
⽤例需覆盖:正常场景、参数缺失、参数异常(类型/⻓度/格式)、边界值等
复制代码
提示词:
请根据以下接口信息,帮我生成完整的测试用例列表。要求覆盖正常情况、边界情
况、异常输入、安全测试场景。按照测试的优先级将测试用例的数量控制在10个以
内,用表格形式展示,包括:用例编号、测试目标、输入参数、预期结果
POST http://8.137.19.140:9090/b1og/add
请求头:
(
“user_token_header”:"eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlck5hbWUiOi
J6aGFuZ3NhbiIsImV4cCI6MTcINDI4MDEOMnO. yDlkXmaUn6cF-8adtj2z9nrC1XR5FkfCYjp
elC6MWEc"
请求参数json:
{"title”:"1111”,"content”:“##在这里写下一篇博客”}
请求成功返回值:
"code”:"SUCCESS",
"errMsg”:"",
"data":true
请求失败:
"code”:"SUCCESS",
"errMsg”:"",
"data":false
除了以上返回值场景,其他场景下响应状态码均为401
1.生成测试用例
复制代码
请根据以下接⼝信息,帮我⽣成完整的测试⽤例列表。要求覆盖正常情况、边界情况、异常输⼊、安全
测试场景。按照测试的优先级将测试⽤例的数量控制在10个以内,⽤表格形式展⽰,包括:⽤例编号、测
试⽬标、输⼊参数、预期结果
POST http://8.137.19.140:9090/blog/add
请求头:
{
"user_token_header":"eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlck5hbWUiOiJ6aGFuZ3Nhb
iIsImV4cCI6MTc1NDI4MDE0Mn0.yDlkXmaUn6cF-8adtj2z9nrC1XR5FkfCYjpelC6MWEc"
}
请求参数json:
{"title": "1111", "content": "##在这⾥写下⼀篇博客"}
请求成功返回值:
{
"code": "SUCCESS",
"errMsg": "",
"data": true
}
请求失败:
{
"code": "SUCCESS",
"errMsg": "",
"data": false
}
除了以上返回值场景,其他场景下响应状态码均为401
2.生成测试脚本
复制代码
根据上⾯10个测试⽤例,创建test_add.py⽂件并在⽂件中⽣成测试脚本
3.手动优化
数据依赖
复制代码
背景:登录接⼝返回的data有效数据为其他接⼝请求头user_token_header参数的有效值
要求:
1)修改涉及代码的user_token_header取值,避免出现失效的情况
2)不改变已有测试⽂件的结构,测试⽂件中只有测试类和测试⽅法
3)避免重复代码,推荐使⽤fixture
参数化 pytest.mark.parametrize
复制代码
分析接口返回值,利用pytest中的参数化操作来减少用例数量
要求:
1)可以合并放在同一个用例中
2)不可以合并的用例不做处理,避免强行处理降低代码可读性

三、需求分析与用例设计

复制代码
@博客系统接⼝⽂档 @博客系统接⼝测试⽤例模板
针对博客系统接⼝⽂档中涉及到的所有接⼝,分别设计接⼝测试⽤例
要求:
1)⽤例需覆盖:正常场景、参数缺失、参数异常(类型/⻓度/格式)、边界值等,按照测试的优先级
将每个接⼝对应测试⽤例的数量控制在10个以内
2)输出格式:完全按照博客系统接⼝测试⽤例模板⽂档中的格式来输出测试⽤例,保存在“接⼝测试⽤
例.md”⽂件中

四、搭建项目框架

复制代码
@接⼝测试⽤例
根据接⼝测试⽤例.md⽂件内容,直接输出接⼝⾃动化⽬录结构即可,不需要创建项⽬代码或⽂件
技术栈要求:
1. 编程语⾔:Python
2. 测试框架:pytest
3. HTTP 库:requests
4. 数据驱动:YAML
5. 报告:Allure
6. 接⼝返回值断⾔:jsonschema
7. logging⽇志记录:⽇志分级输出,按天分割
其他设计要求:
1. 其他接⼝需要在请求头添加有效token,但是token值来⾃于登录接⼝的返回值data
2. 其他接⼝中有效的blogId取⾃列表⻚接⼝getList的有效返回值id

生成结果

复制代码
project_root/
│
├── requirements.txt                # 依赖列表
├── pytest.ini                     # pytest 全局配置
├── config/
│   ├── settings.py                # 全局配置(BaseURL、日志级别…)
│   └── logging.conf               # logging 配置文件(RotatingFileHandler 按天切分)
│
├── data/
│   ├── login.yaml                 # 登录接口测试数据
│   ├── getList.yaml
│   ├── addBlog.yaml
│   ├── getBlogDetail.yaml
│   ├── getUserInfo.yaml
│   └── getAuthorInfo.yaml
│
├── schema/                        # jsonschema 断言文件
│   ├── login_schema.json
│   ├── blog_list_schema.json
│   ├── blog_detail_schema.json
│   └── user_schema.json
│
├── common/
│   ├── __init__.py
│   ├── logger.py                  # 日志封装(logger.info / logger.error)
│   ├── request_handler.py         # requests 二次封装(自动写日志、异常处理)
│   └── yaml_reader.py             # 加载 YAML 用例
│
├── fixture/
│   ├── __init__.py
│   └── conftest.py                # pytest fixture:
│                                   # - login():返回有效 token
│                                   # - blog_id():返回 getList 第一条 id
│
├── api/
│   ├── __init__.py
│   ├── login_api.py               # 登录接口封装
│   ├── blog_api.py                # 博客相关接口封装
│   └── user_api.py                # 用户相关接口封装
│
├── test_case/
│   ├── __init__.py
│   ├── test_login.py              # 登录用例
│   ├── test_blog_list.py
│   ├── test_add_blog.py
│   ├── test_blog_detail.py
│   ├── test_user_info.py
│   └── test_author_info.py
│
├── report/                        # 运行后自动生成
│   ├── html/                      # allure html
│   └── allure_raw/                # allure json
│
└── run.py                         # 一键执行入口(pytest.main + allure generate)

脚本生成

复制代码
@博客系统接⼝⽂档
@博客系统项⽬结构
@博客系统接⼝测试⽤例
结合博客系统相关⽂档,严格按照要求⽣成接⼝⾃动化测试
相关推荐
小陈的进阶之路3 小时前
postman-mcp-server
测试工具·lua·postman
川石课堂软件测试7 小时前
requests接口自动化测试
数据库·python·功能测试·测试工具·单元测试·grafana·prometheus
emilyhu20269 小时前
测试工具fiddler抓包后Response的乱码问题解决方式汇总
测试工具·fiddler
我的xiaodoujiao9 小时前
API 接口自动化测试详细图文教程学习系列12--Requests模块4--测试实践操作
python·学习·测试工具·pytest
LT101579744410 小时前
2026年云测试平台选型指南:全场景真机与自动化技术实测
测试工具·自动化
流氓也是种气质 _Cookie19 小时前
Wireshark在Windows XP系统上的安装与使用指南
windows·测试工具·wireshark
ZLG_zhiyuan1 天前
竞逐“芯”赛道:CAN分析仪如何成为芯片行业高效测试工具?
测试工具
Lugas Luo1 天前
DVR 存储工具深度分析报告 (测试与产品视角)
linux·嵌入式硬件·测试工具