创建Controller HTTP测试脚本
创建Controller HTTP测试脚本
任务概述
为fastbee-open-api模块下的103个Controller创建对应的HTTP测试脚本文件,确保测试覆盖所有主要接口。
测试脚本规范
文件格式
- 文件名:
{ControllerName}.http(如: DeviceController.http, SysUserController.http) - 存放位置:
f:/project/kaiyuan/fastbee-dev/springboot/script/idea/目录 - 编码: UTF-8 with BOM
- 变量引用: 使用
{{baseUrl}},{{token}},{{tenantId}}(来自http-client.env.json)
单个请求格式
### {请求描述} => {预期结果} {HTTP_METHOD} {{baseUrl}}/{api-path}?{query-params} Authorization: Bearer {{token}} Content-Type: application/json {request-body}注释规范
- 使用
###标记每个请求的开始 - 注释格式:
功能描述 => 预期结果(成功/失败) - 复杂请求添加额外说明注释
测试场景覆盖
- 分页查询:
list?pageNum=1&pageSize=10 - 详情查询:
getInfo/{id} - 新增:
POST+ JSON body - 修改:
PUT+ JSON body - 删除:
DELETE/{ids} - 导出:
POST /export - 业务特定接口: 根据Controller功能定制
执行计划
阶段1: 核心业务模块 (优先级高)
创建以下目录的测试脚本:
device/(9个Controller)
- DeviceController.http - 已存在,需补充完整测试用例
- DeviceAlertUserController.http
- DeviceExtParamValueController.http
- DeviceJobController.http
- DeviceMaintenanceController.http
- DeviceMessageController.http
- DeviceRecordController.http
- DeviceShareController.http
- DeviceUserController.http
system/(16个Controller)
- SysUserController.http
- SysRoleController.http
- SysMenuController.http
- SysDeptController.http
- SysConfigController.http
- SysDictDataController.http
- SysDictTypeController.http
- SysNoticeController.http
- SysPostController.http
- SysProfileController.http
- SysLoginController.http
- SysRegisterController.http
- SysClientController.http
- SysIndexController.http
- SysMenuTranslateController.http
- SysTranslateController.http
deviceConfig/(10个Controller)
- ProductController.http
- CategoryController.http
- GroupController.http
- ThingsModelController.http
- ThingsModelTemplateController.http
- OrderControlController.http
- ProductAuthorizeController.http
- ProductExtParamController.http
- CommandPreferencesController.http
- ThingsModelTemplateTranslateController.http
- ThingsModelTranslateController.http
阶段2: 规则引擎与日志模块
ruleEngine/(5个Controller)
- SceneController.http
- AlertController.http
- BridgeController.http
- HttpBridgeController.http
- ScriptController.http
deviceLog/(4个Controller)
- DeviceLogController.http
- AlertLogController.http
- EventLogController.http
- FunctionLogController.http
ruleview/(9个Controller)
- RuleChainController.http
- RuleCmpController.http
- RuleDebugController.http
- RuleElController.http
- RuleExecutorController.http
- RuleLogController.http
- RuleParserController.http
- RuleScriptNodeController.http
- RuleTriggerController.http
阶段3: 媒体与网关模块
media/(11个Controller)
- MediaServerController.http
- PlayerController.http
- PtzController.http
- RecordController.http
- SipConfigController.http
- SipDeviceController.http
- CommonChannelController.http
- CommonPlayerController.http
- CommonPtzController.http
- TalkController.http
- ZmlHookController.http
gateway/(1个Controller)
- SubGatewayController.http
modbus/(6个Controller)
- ModbusController.http
- ModbusConfigController.http
- ModbusJobController.http
- ModbusParamsController.http
- ProductModbusJobController.http
- ProductSubGatewayController.http
阶段4: 其他业务模块
datacenter/(3个Controller)
- DataCenterController.http
- ReportController.http
- ReportRecordsController.http
firmware/(2个Controller)
- FirmwareController.http
- FirmwareTaskController.http
sceneModel/(4个Controller)
- SceneModelController.http
- SceneModelDataController.http
- SceneModelDeviceController.http
- SceneModelTagController.http
operations/(1个Controller)
- WorkOrderController.http
card/(2个Controller)
- CardController.http
- CardPlatformController.http
appVersion/(1个Controller)
- AppVersionController.http
dashBoard/(1个Controller)
- DashBoardController.http
protocol/(1个Controller)
- ProtocolController.http
runtime/(1个Controller)
- DeviceRuntimeController.http
sip/(1个Controller)
- SipRelationController.http
netty/(1个Controller)
- NettyManagerController.http
阶段5: 工具与社交模块
tool/(5个Controller)
- ToolController.http
- EmqxController.http
- NewsController.http
- NewsCategoryController.http
- AuthResourceController.http
socialUser/(3个Controller)
- SocialLoginController.http
- SocialPlatformController.http
- UserSocialController.http
translate/(2个Controller)
- AppLanguageController.http
- AppPreferencesController.http
wechat/(1个Controller)
- WeChatController.http
goview/(2个Controller)
- GoviewProjectController.http
- GoviewProjectDataController.http
实施步骤
步骤1: 补充DeviceController.http
完善现有的DeviceController.http,添加所有接口的测试用例:
- 分页查询、未授权列表、分组查询、简短列表、全部列表
- 详情查询(按ID、按序列号)
- 新增设备、批量新增
- 修改设备、重置状态
- 删除设备、物理删除
- 导出、导入、分配、回收
- MQTT连接参数、HTTP认证参数
- 统计信息、变量概况
步骤2: 批量生成标准CRUD测试脚本
为每个Controller按照以下模板生成:
### 查询{资源}分页列表 => 成功 GET {{baseUrl}}/{base-path}/list?pageNum=1&pageSize=10 Authorization: Bearer {{token}} ### 获取{资源}详情 - {id} => 成功 GET {{baseUrl}}/{base-path}/{id} Authorization: Bearer {{token}} ### 新增{资源} => 成功 POST {{baseUrl}}/{base-path} Authorization: Bearer {{token}} Content-Type: application/json { "name": "测试数据", "status": 1 } ### 修改{资源} => 成功 PUT {{baseUrl}}/{base-path} Authorization: Bearer {{token}} Content-Type: application/json { "id": 1, "name": "更新后的名称", "status": 1 } ### 删除{资源} => 成功 DELETE {{baseUrl}}/{base-path}/{ids} Authorization: Bearer {{token}} ### 导出{资源}列表 => 成功 POST {{baseUrl}}/{base-path}/export Authorization: Bearer {{token}} Content-Type: application/json { "pageNum": 1, "pageSize": 10 }步骤3: 添加业务特定接口
根据每个Controller的特殊功能添加测试用例:
- 设备管理: 绑定用户、分配回收、导入导出
- 规则引擎: 场景触发、脚本执行
- 媒体服务: 视频播放、PTZ控制
- 系统管理: 登录登出、权限分配
步骤4: 验证与优化
- 检查所有测试文件格式一致性
- 确保变量引用正确
- 验证请求路径与Controller映射匹配
- 添加必要的请求头和请求体
输出文件清单
总共生成103个HTTP测试文件,存放在script/idea/目录下,覆盖fastbee-open-api模块所有Controller。
注意事项
- 所有文件使用UTF-8 with BOM编码
- 遵循现有DeviceController.http的格式
- 每个请求包含清晰的中文注释
- 使用环境变量避免硬编码
- 覆盖成功和常见失败场景
- 复杂业务逻辑添加详细说明
