创建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 复制代码
### {请求描述} => {预期结果}
{HTTP_METHOD} {{baseUrl}}/{api-path}?{query-params}
Authorization: Bearer {{token}}
Content-Type: application/json

{request-body}

注释规范

  • 使用 ### 标记每个请求的开始
  • 注释格式: 功能描述 => 预期结果(成功/失败)
  • 复杂请求添加额外说明注释

测试场景覆盖

  1. 分页查询 : list?pageNum=1&pageSize=10
  2. 详情查询 : getInfo/{id}
  3. 新增 : POST + JSON body
  4. 修改 : PUT + JSON body
  5. 删除 : DELETE/{ids}
  6. 导出 : POST /export
  7. 业务特定接口: 根据Controller功能定制

执行计划

阶段1: 核心业务模块 (优先级高)

创建以下目录的测试脚本:

  1. device/ (9个Controller)

    • DeviceController.http - 已存在,需补充完整测试用例
    • DeviceAlertUserController.http
    • DeviceExtParamValueController.http
    • DeviceJobController.http
    • DeviceMaintenanceController.http
    • DeviceMessageController.http
    • DeviceRecordController.http
    • DeviceShareController.http
    • DeviceUserController.http
  2. 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
  3. 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: 规则引擎与日志模块

  1. ruleEngine/ (5个Controller)

    • SceneController.http
    • AlertController.http
    • BridgeController.http
    • HttpBridgeController.http
    • ScriptController.http
  2. deviceLog/ (4个Controller)

    • DeviceLogController.http
    • AlertLogController.http
    • EventLogController.http
    • FunctionLogController.http
  3. ruleview/ (9个Controller)

    • RuleChainController.http
    • RuleCmpController.http
    • RuleDebugController.http
    • RuleElController.http
    • RuleExecutorController.http
    • RuleLogController.http
    • RuleParserController.http
    • RuleScriptNodeController.http
    • RuleTriggerController.http

阶段3: 媒体与网关模块

  1. 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
  2. gateway/ (1个Controller)

    • SubGatewayController.http
  3. modbus/ (6个Controller)

    • ModbusController.http
    • ModbusConfigController.http
    • ModbusJobController.http
    • ModbusParamsController.http
    • ProductModbusJobController.http
    • ProductSubGatewayController.http

阶段4: 其他业务模块

  1. datacenter/ (3个Controller)

    • DataCenterController.http
    • ReportController.http
    • ReportRecordsController.http
  2. firmware/ (2个Controller)

    • FirmwareController.http
    • FirmwareTaskController.http
  3. sceneModel/ (4个Controller)

    • SceneModelController.http
    • SceneModelDataController.http
    • SceneModelDeviceController.http
    • SceneModelTagController.http
  4. operations/ (1个Controller)

    • WorkOrderController.http
  5. card/ (2个Controller)

    • CardController.http
    • CardPlatformController.http
  6. appVersion/ (1个Controller)

    • AppVersionController.http
  7. dashBoard/ (1个Controller)

    • DashBoardController.http
  8. protocol/ (1个Controller)

    • ProtocolController.http
  9. runtime/ (1个Controller)

    • DeviceRuntimeController.http
  10. sip/ (1个Controller)

    • SipRelationController.http
  11. netty/ (1个Controller)

    • NettyManagerController.http

阶段5: 工具与社交模块

  1. tool/ (5个Controller)

    • ToolController.http
    • EmqxController.http
    • NewsController.http
    • NewsCategoryController.http
    • AuthResourceController.http
  2. socialUser/ (3个Controller)

    • SocialLoginController.http
    • SocialPlatformController.http
    • UserSocialController.http
  3. translate/ (2个Controller)

    • AppLanguageController.http
    • AppPreferencesController.http
  4. wechat/ (1个Controller)

    • WeChatController.http
  5. goview/ (2个Controller)

    • GoviewProjectController.http
    • GoviewProjectDataController.http

实施步骤

步骤1: 补充DeviceController.http

完善现有的DeviceController.http,添加所有接口的测试用例:

  • 分页查询、未授权列表、分组查询、简短列表、全部列表
  • 详情查询(按ID、按序列号)
  • 新增设备、批量新增
  • 修改设备、重置状态
  • 删除设备、物理删除
  • 导出、导入、分配、回收
  • MQTT连接参数、HTTP认证参数
  • 统计信息、变量概况

步骤2: 批量生成标准CRUD测试脚本

为每个Controller按照以下模板生成:

http 复制代码
### 查询{资源}分页列表 => 成功
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。

注意事项

  1. 所有文件使用UTF-8 with BOM编码
  2. 遵循现有DeviceController.http的格式
  3. 每个请求包含清晰的中文注释
  4. 使用环境变量避免硬编码
  5. 覆盖成功和常见失败场景
  6. 复杂业务逻辑添加详细说明
相关推荐
网络研究院21 分钟前
LastPass 发布紧急安全预警:针对主密码的活跃网络钓鱼攻击正在进行中
网络·安全·黑客·攻击·漏洞·风险·钓鱼
便利店10241 小时前
TCP 为什么有时故意跑不快?拥塞控制与滑动窗口一次讲清
服务器·网络协议·tcp·拥塞控制
向夏威夷 梦断明暄2 小时前
【高效管理token成本】OpenClaw精细化分库管理memory以减少token成本的方案的可行性研究
网络
aixingkong9215 小时前
AI超节点Scale Up域总线各层优化设计
linux·服务器·网络
组合缺一7 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·服务器·网络协议·http·solon
瓦学妹8 小时前
为什么您的AI总是显示“不支持的区域”?如何解决?
大数据·网络·人工智能
优化Henry8 小时前
5G站点软件错误告警与资源激活超时两类典型告警分析与处理
网络·笔记·学习·5g·信息与通信
coward918 小时前
千兆以太网卡(Ethernet)驱动初始化完成,但是无法udhcpc获取ip
服务器·网络·嵌入式硬件·tcp/ip
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题 第211题】【10_网络协议篇】第2题:说一下什么是 HTTP 协议?
java·网络协议·http·https·web通信
逸Y 仙X9 小时前
跨语言RPC框架Thrift实战
网络·网络协议·rpc·thrift