测试流程配置接口说明.md
6.18 KB
报销流程配置接口测试说明
测试前准备
启动后端服务
# 确保后端服务在 localhost:2011 运行 # 如果没有启动,请先启动后端服务确保数据库表已创建
-- 执行 sql/创建报销流程配置表.sql 中的SQL语句 -- 确保以下表已创建: -- - lq_reimbursement_workflow_config -- - lq_reimbursement_workflow_node -- - lq_reimbursement_workflow_node_user
运行测试脚本
# 在项目根目录执行
python3 test_reimbursement_workflow_config_api.py
测试接口列表
1. 获取启用的流程列表
- 接口:
GET /api/Extend/LqReimbursementWorkflowConfig/Actions/GetEnabledList - 用途: 获取所有启用的流程配置,用于前端下拉选择
- 返回: 基础信息列表(不含节点详情)
2. 获取流程列表(分页)
- 接口:
GET /api/Extend/LqReimbursementWorkflowConfig - 参数:
currentPage: 当前页码(默认1)pageSize: 每页数量(默认20)keyword: 关键字(流程名称模糊查询,可选)queryJson: JSON字符串,可包含{"isEnabled": 1}来筛选启用状态
- 返回: 分页列表,包含流程基础信息
3. 创建流程配置
- 接口:
POST /api/Extend/LqReimbursementWorkflowConfig - 请求体示例:
json { "workflowName": "标准报销流程", "isEnabled": 1, "description": "适用于一般报销申请的审批流程", "nodes": [ { "nodeOrder": 1, "nodeName": "部门经理审批", "approvalType": "会签", "isRequired": 1, "approverIds": [], "approverNames": [] }, { "nodeOrder": 2, "nodeName": "财务审批", "approvalType": "会签", "isRequired": 1, "approverIds": [], "approverNames": [] } ] } - 验证规则:
- 流程名称不能为空
- 至少需要1个节点
- 节点数量不能超过20个
- 节点顺序必须连续(1, 2, 3, ...)
- 节点名称不能为空
- 返回:
{"code": 200, "data": {"id": "流程配置ID"}}
4. 获取流程详细信息
- 接口:
GET /api/Extend/LqReimbursementWorkflowConfig/{id} - 用途: 获取流程的完整信息,包括所有节点和审批人
- 返回: 完整的流程配置信息,包含所有节点详情
5. 更新流程配置
- 接口:
PUT /api/Extend/LqReimbursementWorkflowConfig/{id} - 请求体: 与创建接口相同,但必须包含
id字段 - 说明: 更新时会删除原有节点和审批人配置,重新创建
- 验证规则: 与创建接口相同
手动测试示例(使用 curl)
1. 获取Token
curl -X POST "http://localhost:2011/api/oauth/Login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "account=admin&password=e10adc3949ba59abbe56e057f20f883e"
2. 获取启用的流程列表
TOKEN="Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
curl -X GET "http://localhost:2011/api/Extend/LqReimbursementWorkflowConfig/Actions/GetEnabledList" \
-H "Authorization: $TOKEN"
3. 获取流程列表
curl -X GET "http://localhost:2011/api/Extend/LqReimbursementWorkflowConfig?currentPage=1&pageSize=20" \
-H "Authorization: $TOKEN"
4. 创建流程配置
curl -X POST "http://localhost:2011/api/Extend/LqReimbursementWorkflowConfig" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"workflowName": "测试流程",
"isEnabled": 1,
"description": "测试描述",
"nodes": [
{
"nodeOrder": 1,
"nodeName": "节点1",
"approvalType": "会签",
"isRequired": 1,
"approverIds": [],
"approverNames": []
}
]
}'
5. 获取流程详细信息
WORKFLOW_ID="创建的流程ID"
curl -X GET "http://localhost:2011/api/Extend/LqReimbursementWorkflowConfig/$WORKFLOW_ID" \
-H "Authorization: $TOKEN"
6. 更新流程配置
WORKFLOW_ID="要更新的流程ID"
curl -X PUT "http://localhost:2011/api/Extend/LqReimbursementWorkflowConfig/$WORKFLOW_ID" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "'$WORKFLOW_ID'",
"workflowName": "更新后的流程名称",
"isEnabled": 1,
"description": "更新后的描述",
"nodes": [
{
"nodeOrder": 1,
"nodeName": "更新后的节点1",
"approvalType": "会签",
"isRequired": 1,
"approverIds": [],
"approverNames": []
}
]
}'
测试检查点
创建接口测试
- ✅ 正常创建流程(2个节点)
- ✅ 流程名称为空 → 应该返回错误
- ✅ 节点列表为空 → 应该返回错误
- ✅ 节点顺序不连续(1, 3) → 应该返回错误
- ✅ 节点名称为空 → 应该返回错误
- ✅ 节点数量超过20个 → 应该返回错误
更新接口测试
- ✅ 正常更新流程(修改名称、描述、节点)
- ✅ 更新时增加节点数量
- ✅ 更新时减少节点数量
- ✅ 更新时修改节点顺序
- ✅ 更新时修改审批类型(会签/或签)
查询接口测试
- ✅ 获取列表(分页)
- ✅ 获取列表(关键字搜索)
- ✅ 获取列表(启用状态筛选)
- ✅ 获取详细信息(包含所有节点)
- ✅ 获取详细信息(包含审批人信息)
数据一致性测试
- ✅ 创建后立即查询,数据应该一致
- ✅ 更新后立即查询,数据应该一致
- ✅ 创建流程后,节点数量应该正确
- ✅ 更新流程后,原有节点应该被删除,新节点应该正确创建
预期结果
所有测试应该通过,接口应该:
- 正确验证输入参数
- 正确处理事务(创建/更新失败时回滚)
- 正确返回数据格式
- 数据一致性保证
注意事项
- 审批人ID: 当前测试脚本中审批人ID为空,实际使用时需要填入真实的用户ID
- Token过期: 如果Token过期,需要重新获取
- 数据库连接: 确保数据库连接正常
- 外键约束: 确保删除流程配置时,相关的节点和审批人配置也会被正确删除(已在SQL中设置CASCADE)