Blame view

.cursor/skills/api-interface-testing/SKILL.md 4.58 KB
d56bd957   “wangming”   修复问题,组建AI
1
2
3
4
5
6
7
8
9
10
11
12
13
  ---
  name: api-interface-testing
  description: 按项目规范执行接口测试,包含获取 Token、使用 curl 调用接口及验证要点。在开发或修改接口、需要验证接口行为或用户提及接口测试时使用。
  ---
  
  # 接口测试
  
  ## 何时使用
  
  - 新增或修改了后端 API,需要验证接口行为
  - 用户明确要求进行接口测试或提供测试示例
  - 提交代码前确认接口符合「必须测试」规范
  
bb87363d   “wangming”   添加设备查看会话记录功能,包括开始...
14
15
16
17
18
19
20
21
22
  ## 执行方式(必须按此执行)
  
  当用户本地 API 已启动(如 `http://localhost:2011`)时,**必须直接使用 Shell 执行 curl 命令**进行接口测试,而不是只给出 curl 示例让用户自己执行。
  
  1. **登录获取 Token**:用 Shell 执行登录 curl,从返回 JSON 中解析 `data.token`
  2. **调用目标接口**:用 Shell 依次执行 curl,请求头带上 `Authorization: {data.token}`
  3. **数据库验证**:涉及增删改的接口,**必须**用 MCP MySQL 工具执行 SELECT 查库验证(遵循 `mcp-mysql-and-sql-validation` skill)
  4. **输出测试报告**:汇总 HTTP 状态、返回值、数据库校验结果,给出通过/不通过结论
  
d56bd957   “wangming”   修复问题,组建AI
23
24
25
26
27
  ## 测试流程
  
  1. **获取 Token**:先调用登录接口拿到 `data.token`
  2. **调用目标接口**:请求头带上 `Authorization: {data.token}`
  3. **验证结果**:按下方清单检查返回值与行为
bb87363d   “wangming”   添加设备查看会话记录功能,包括开始...
28
  4. **查库验证**:对新增/修改/删除类接口,用 MCP 执行 SQL 验证数据是否正确落库
d56bd957   “wangming”   修复问题,组建AI
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
  
  ## 获取 Token
  
  - **地址**`POST /api/oauth/Login`
  - **Content-Type**`application/x-www-form-urlencoded`
  - **参数**`account=admin`,`password=66762a3ccde2a2cff3060d7a4a0a576b`
  - **Base URL**:本地一般为 `http://localhost:2011`,以实际运行环境为准
  
  **curl 示例:**
  
  ```bash
  curl -X POST "http://localhost:2011/api/oauth/Login" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "account=admin&password=66762a3ccde2a2cff3060d7a4a0a576b"
  ```
  
  **返回说明**`data.token` 已包含 `"Bearer "` 前缀,请求其他接口时**直接使用**:`Authorization: {data.token}`(无需再拼 Bearer)。
  
  ## 调用接口示例
  
  **GET(项目规范:GET 使用 data 传参,不用 params):**
  
  ```bash
  curl -X GET "http://localhost:2011/api/xxx/YourAction?key=value" \
    -H "Authorization: <data.token 完整值>"
  ```
  
  **POST(JSON body):**
  
  ```bash
  curl -X POST "http://localhost:2011/api/xxx/YourAction" \
    -H "Authorization: <data.token 完整值>" \
    -H "Content-Type: application/json" \
    -d '{"key":"value"}'
  ```
  
  `<data.token 完整值>` 替换为登录响应里 `data.token` 的整段字符串(已含 `Bearer `)。
  
  ## 验证清单
  
  测试时需覆盖并确认:
  
  - [ ] **功能**:用真实/合理数据调用,返回符合接口约定
  - [ ] **正确性**:关键字段类型、取值、分页与业务逻辑一致
  - [ ] **边界**:空列表、无数据、参数缺省等处理正确
  - [ ] **异常**:非法参数、未登录等返回合理错误码与提示
  - [ ] **性能**:响应时间可接受,无超时或明显卡顿
  
  只有测试通过后再提交相关代码。
  
  ## 工具
  
  可使用 curl、Postman、Swagger 等;给出示例时优先提供 **curl**,便于在终端直接执行。
bb87363d   “wangming”   添加设备查看会话记录功能,包括开始...
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
  
  ## 完整执行示例(Shell + MCP 查库)
  
  以下为 SbRecords StartViewRecord / EndViewRecord 接口的实测流程,**以后接口测试均按此方式执行**
  
  1. **Shell 执行登录**,获取 token:
     ```bash
     curl -s -X POST "http://localhost:2011/api/oauth/Login" \
       -H "Content-Type: application/x-www-form-urlencoded" \
       -d "account=admin&password=66762a3ccde2a2cff3060d7a4a0a576b"
     ```
     从返回 JSON 中提取 `data.token`,后续请求头使用 `Authorization: $TOKEN`
  
  2. **Shell 执行目标接口**(如 StartViewRecord):
     ```bash
     curl -s -X POST "http://localhost:2011/api/Extend/SbRecords/Actions/StartViewRecord" \
       -H "Authorization: $TOKEN" \
       -H "Content-Type: application/x-www-form-urlencoded" \
       -d "reId=xxx&type=查看设备"
     ```
     记录返回的 `data`(如 recordId)
  
  3. **Shell 执行后续接口**(如 EndViewRecord):
     ```bash
     curl -s -X POST "http://localhost:2011/api/Extend/SbRecords/Actions/EndViewRecord" \
       -H "Authorization: $TOKEN" \
       -H "Content-Type: application/x-www-form-urlencoded" \
       -d "recordId=xxx"
     ```
  
  4. **MCP 查库验证**:调用 `mcp_HongHua-JJ-my-sql-db_query` 执行 SELECT,校验关键字段(如 F_LeaveTime、F_DurationSeconds)是否正确写入
  
  5. **输出测试报告**:表格汇总各用例的预期 vs 实际、数据库校验结果,给出「通过/不通过」结论