#!/bin/bash # 配置管理API测试脚本 API_BASE="http://localhost:8080/api" echo "🔧 配置管理API测试开始" echo "========================" # 测试获取完整配置 echo "1. 获取完整配置:" curl -s "$API_BASE/config" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试获取全局配置 echo "2. 获取全局配置:" curl -s "$API_BASE/config/global" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试获取流配置列表 echo "3. 获取流配置列表:" curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试更新全局配置 echo "4. 更新全局配置(增加并发流数):" curl -s -X PUT -H "Content-Type: application/json" \ -d '{"max_concurrent_streams": 3, "poll_cycles": 5}' \ "$API_BASE/config/global" | jq '.' || echo "JSON解析失败" echo -e "\n" # 验证更新结果 echo "5. 验证全局配置更新结果:" curl -s "$API_BASE/config/global" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试添加新的流配置 echo "6. 添加新的流配置:" curl -s -X POST -H "Content-Type: application/json" \ -d '{ "rtsp_url": "rtsp://test.example.com/stream", "duration_seconds": 25, "weight": 1.8, "output_filename": "test_new_stream.mp4" }' \ "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败" echo -e "\n" # 验证流配置添加结果 echo "7. 验证流配置添加结果:" curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试更新第一个流配置 echo "8. 更新第一个流配置:" curl -s -X PUT -H "Content-Type: application/json" \ -d '{"duration_seconds": 30, "weight": 2.0}' \ "$API_BASE/config/streams/0" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试保存配置 echo "9. 保存配置到文件:" curl -s -X POST -H "Content-Type: application/json" \ -d '{"file_path": "config_backup.json"}' \ "$API_BASE/config/save" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试重新加载配置 echo "10. 重新加载配置:" curl -s -X POST "$API_BASE/config/reload" | jq '.' || echo "JSON解析失败" echo -e "\n" # 测试删除最后一个流配置(如果有多个) STREAM_COUNT=$(curl -s "$API_BASE/config/streams" | jq '.count' 2>/dev/null) if [ "$STREAM_COUNT" -gt 1 ] 2>/dev/null; then LAST_INDEX=$((STREAM_COUNT - 1)) echo "11. 删除最后一个流配置(索引 $LAST_INDEX):" curl -s -X DELETE "$API_BASE/config/streams/$LAST_INDEX" | jq '.' || echo "JSON解析失败" echo -e "\n" echo "12. 验证删除结果:" curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败" echo -e "\n" else echo "11. 跳过删除测试(只有一个流配置,不能删除)" echo -e "\n" fi echo "========================" echo "🎉 配置管理API测试完成"