Apifox 报告

场景用例
S08-菜品与留样人员(双库真实写入)
运行时间
2026-09-26 10:33:04
运行工具
Apifox-Cli v2.2.6
 
 
总数
失败数
循环数
1
0
HTTP 接口请求数
44
0
断言数
372
0
 
总耗时
21.27s
总返回数据
36.67KB
接口请求耗时
19.75s
平均接口请求耗时
448.91ms
 
通过率
100.00%
失败率
0.00%
未测率
0.00%

接口请求情况


登录并初始化双库测试变量
Method
POST
URL
 
 
耗时
297.00ms

返回数据
457B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
登录业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
登录返回临时 Token(报告脱敏) 通过
关键返回值|code=200,ok=true 通过

读取菜品列表基线
Method
GET
URL
 
 
耗时
79.00ms

返回数据
4.35KB

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品基线:items 为数组 通过
菜品基线:分页字段存在 通过
关键返回值|code=200,total=18,page=1,pageSize=20,items=18,firstId=99 通过

新增中文菜品并返回 ID
Method
POST
URL
 
 
耗时
107.00ms

返回数据
45B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品创建:返回正整数 ID 通过
写入响应:返回正整数 ID 通过
关键返回值|code=200,id=151 通过

检查刚创建菜品名称已存在
Method
GET
URL
 
 
耗时
108.00ms

返回数据
50B

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
存在性:exists=true 通过
关键返回值|code=200,dataKeys=exists 通过

按 marker 回查新增菜品
Method
GET
URL
 
 
耗时
76.00ms

返回数据
396B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品回查:包含创建 ID 通过
菜品回查:中文、启用、NULL 图片正确 通过
关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=151 通过

更新菜品中文、备注、NULL 图片和停用状态
Method
PATCH
URL
 
 
耗时
107.00ms

返回数据
46B

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品更新:ok=true 通过
关键返回值|code=200,ok=true 通过

更新后回查菜品已持久化
Method
GET
URL
 
 
耗时
73.00ms

返回数据
405B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
更新回查:名称和备注正确 通过
更新回查:enabled=false 且图片仍为空 通过
关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=151 通过

批量导入一条合法菜品和一条超长编号
Method
POST
URL
 
 
耗时
150.00ms

返回数据
67B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
批量导入:success=1 通过
批量导入:fail=1 且 total=2 通过
关键返回值|code=200,total=2 通过

批量导入后核对合法与失败项
Method
GET
URL
 
 
耗时
76.00ms

返回数据
719B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
导入回查:合法红烧茄子存在 通过
导入回查:超长编号项零写入 通过
关键返回值|code=200,total=2,page=1,pageSize=50,items=2,firstId=152 通过

导出菜品 CSV 并核对本轮数据
Method
GET
URL
 
 
耗时
51.00ms

返回数据
395B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品 CSV:包含中文表头 通过
菜品 CSV:包含本轮 marker 和中文菜名 通过
关键返回值|code=200,csvChars=206 通过

直接新增 65 字符菜品编号应 400
Method
POST
URL
 
 
耗时
45.00ms

返回数据
60B

 

HTTP 状态码
400

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=400 通过
HTTP 状态码 = 400 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 400 通过
65 字编号:返回 64 字符上限错误 通过
关键返回值|code=400,message=菜品编号不能超过64个字符 通过

65 字符编号失败后确认零写入
Method
GET
URL
 
 
耗时
56.00ms

返回数据
80B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
65 字编号零写入:total=0 通过
65 字编号零写入:items 为空 通过
关键返回值|code=200,total=0,page=1,pageSize=20,items=0 通过

读取学校人员基线
Method
GET
URL
 
 
耗时
32.00ms

返回数据
2.99KB

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员基线:items 为数组 通过
关键返回值|code=200,total=3,page=1,pageSize=20,items=3,firstId=900110 通过

新增本轮专用留样人员
Method
POST
URL
 
 
耗时
131.00ms

返回数据
48B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员创建:返回正整数 ID 通过
写入响应:返回正整数 ID 通过
关键返回值|code=200,id=900579 通过

回查本轮专用人员
Method
GET
URL
 
 
耗时
18.00ms

返回数据
551B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员回查:中文姓名正确 通过
人员回查:学校、食堂、停用状态正确 通过
关键返回值|code=200,id=900579 通过

新增留样人员授权
Method
POST
URL
 
 
耗时
149.00ms

返回数据
46B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员新增:count=1 通过
关键返回值|code=200,dataKeys=count 通过

留样人员列表回查且不得泄露密码
Method
GET
URL
 
 
耗时
76.00ms

返回数据
266B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员回查:包含本轮人员 ID 通过
留样人员列表:不包含 password 字段 通过
关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900579 通过

留样人员编辑详情可回显密码但证据脱敏
Method
GET
URL
 
 
耗时
115.00ms

返回数据
77B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员详情:ID 正确 通过
留样人员详情:密码专列存在 通过
关键返回值|code=200,id=900579 通过

更新留样人员中文、时间、布尔值和 NULL 图片
Method
POST
URL
 
 
耗时
153.00ms

返回数据
46B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员更新:count=1 通过
关键返回值|code=200,dataKeys=count 通过

更新后回查留样人员字段
Method
GET
URL
 
 
耗时
75.00ms

返回数据
333B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员更新回查:中文姓名、时间正确 通过
人员更新回查:仍不泄露密码 通过
关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900579 通过

跨校菜品列表应 403
Method
GET
URL
 
 
耗时
2.00ms

返回数据
45B

 

HTTP 状态码
403

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=403 通过
HTTP 状态码 = 403 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 403 通过
跨校菜品:无业务数据 通过
关键返回值|code=403,message=School access denied 通过

无 Token 留样人员列表应 401
Method
GET
URL
 
 
耗时
2.00ms

返回数据
38B

 

HTTP 状态码
401

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=401 通过
HTTP 状态码 = 401 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 401 通过
无 Token:明确返回 Missing token 通过
关键返回值|code=401,message=Missing token 通过

登录并初始化双库测试变量
Method
POST
URL
 
 
耗时
935.00ms

返回数据
457B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
登录业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
登录返回临时 Token(报告脱敏) 通过
关键返回值|code=200,ok=true 通过

读取菜品列表基线
Method
GET
URL
 
 
耗时
965.00ms

返回数据
4.35KB

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品基线:items 为数组 通过
菜品基线:分页字段存在 通过
关键返回值|code=200,total=18,page=1,pageSize=20,items=18,firstId=99 通过

新增中文菜品并返回 ID
Method
POST
URL
 
 
耗时
1384.00ms

返回数据
45B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品创建:返回正整数 ID 通过
写入响应:返回正整数 ID 通过
关键返回值|code=200,id=152 通过

检查刚创建菜品名称已存在
Method
GET
URL
 
 
耗时
334.00ms

返回数据
50B

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
存在性:exists=true 通过
关键返回值|code=200,dataKeys=exists 通过

按 marker 回查新增菜品
Method
GET
URL
 
 
耗时
969.00ms

返回数据
396B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品回查:包含创建 ID 通过
菜品回查:中文、启用、NULL 图片正确 通过
关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=152 通过

更新菜品中文、备注、NULL 图片和停用状态
Method
PATCH
URL
 
 
耗时
1079.00ms

返回数据
46B

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品更新:ok=true 通过
关键返回值|code=200,ok=true 通过

更新后回查菜品已持久化
Method
GET
URL
 
 
耗时
977.00ms

返回数据
405B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
更新回查:名称和备注正确 通过
更新回查:enabled=false 且图片仍为空 通过
关键返回值|code=200,total=1,page=1,pageSize=20,items=1,firstId=152 通过

批量导入一条合法菜品和一条超长编号
Method
POST
URL
 
 
耗时
880.00ms

返回数据
67B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
批量导入:success=1 通过
批量导入:fail=1 且 total=2 通过
关键返回值|code=200,total=2 通过

批量导入后核对合法与失败项
Method
GET
URL
 
 
耗时
961.00ms

返回数据
719B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
导入回查:合法红烧茄子存在 通过
导入回查:超长编号项零写入 通过
关键返回值|code=200,total=2,page=1,pageSize=50,items=2,firstId=153 通过

导出菜品 CSV 并核对本轮数据
Method
GET
URL
 
 
耗时
565.00ms

返回数据
395B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
菜品 CSV:包含中文表头 通过
菜品 CSV:包含本轮 marker 和中文菜名 通过
关键返回值|code=200,csvChars=206 通过

直接新增 65 字符菜品编号应 400
Method
POST
URL
 
 
耗时
558.00ms

返回数据
60B

 

HTTP 状态码
400

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=400 通过
HTTP 状态码 = 400 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 400 通过
65 字编号:返回 64 字符上限错误 通过
关键返回值|code=400,message=菜品编号不能超过64个字符 通过

65 字符编号失败后确认零写入
Method
GET
URL
 
 
耗时
704.00ms

返回数据
80B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
65 字编号零写入:total=0 通过
65 字编号零写入:items 为空 通过
关键返回值|code=200,total=0,page=1,pageSize=20,items=0 通过

读取学校人员基线
Method
GET
URL
 
 
耗时
390.00ms

返回数据
2.99KB

 

HTTP 状态码
200

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员基线:items 为数组 通过
关键返回值|code=200,total=3,page=1,pageSize=20,items=3,firstId=900110 通过

新增本轮专用留样人员
Method
POST
URL
 
 
耗时
1084.00ms

返回数据
48B

 

HTTP 状态码
201

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员创建:返回正整数 ID 通过
写入响应:返回正整数 ID 通过
关键返回值|code=200,id=900578 通过

回查本轮专用人员
Method
GET
URL
 
 
耗时
261.00ms

返回数据
551B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员回查:中文姓名正确 通过
人员回查:学校、食堂、停用状态正确 通过
关键返回值|code=200,id=900578 通过

新增留样人员授权
Method
POST
URL
 
 
耗时
1536.00ms

返回数据
46B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员新增:count=1 通过
关键返回值|code=200,dataKeys=count 通过

留样人员列表回查且不得泄露密码
Method
GET
URL
 
 
耗时
971.00ms

返回数据
266B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员回查:包含本轮人员 ID 通过
留样人员列表:不包含 password 字段 通过
关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900578 通过

留样人员编辑详情可回显密码但证据脱敏
Method
GET
URL
 
 
耗时
532.00ms

返回数据
77B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员详情:ID 正确 通过
留样人员详情:密码专列存在 通过
关键返回值|code=200,id=900578 通过

更新留样人员中文、时间、布尔值和 NULL 图片
Method
POST
URL
 
 
耗时
1707.00ms

返回数据
46B

 

HTTP 状态码
201

 

断言通过数
8
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 201 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
留样人员更新:count=1 通过
关键返回值|code=200,dataKeys=count 通过

更新后回查留样人员字段
Method
GET
URL
 
 
耗时
977.00ms

返回数据
333B

 

HTTP 状态码
200

 

断言通过数
9
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=200 通过
HTTP 状态码 = 200 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 200 通过
响应包含 data 字段 通过
人员更新回查:中文姓名、时间正确 通过
人员更新回查:仍不泄露密码 通过
关键返回值|code=200,total=1,page=1,pageSize=100,items=1,firstId=900578 通过

跨校菜品列表应 403
Method
GET
URL
 
 
耗时
3.00ms

返回数据
45B

 

HTTP 状态码
403

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=403 通过
HTTP 状态码 = 403 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 403 通过
跨校菜品:无业务数据 通过
关键返回值|code=403,message=School access denied 通过

无 Token 留样人员列表应 401
Method
GET
URL
 
 
耗时
2.00ms

返回数据
38B

 

HTTP 状态码
401

 

断言通过数
7
断言失败数
0

 
断言详情
名称 结果 详情
业务码 code=401 通过
HTTP 状态码 = 401 通过
响应正文存在 通过
响应正文是 JSON 通过
业务码 code = 401 通过
无 Token:明确返回 Missing token 通过
关键返回值|code=401,message=Missing token 通过