test_config_api.sh 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/bash
  2. # 配置管理API测试脚本
  3. API_BASE="http://localhost:8080/api"
  4. echo "🔧 配置管理API测试开始"
  5. echo "========================"
  6. # 测试获取完整配置
  7. echo "1. 获取完整配置:"
  8. curl -s "$API_BASE/config" | jq '.' || echo "JSON解析失败"
  9. echo -e "\n"
  10. # 测试获取全局配置
  11. echo "2. 获取全局配置:"
  12. curl -s "$API_BASE/config/global" | jq '.' || echo "JSON解析失败"
  13. echo -e "\n"
  14. # 测试获取流配置列表
  15. echo "3. 获取流配置列表:"
  16. curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败"
  17. echo -e "\n"
  18. # 测试更新全局配置
  19. echo "4. 更新全局配置(增加并发流数):"
  20. curl -s -X PUT -H "Content-Type: application/json" \
  21. -d '{"max_concurrent_streams": 3, "poll_cycles": 5}' \
  22. "$API_BASE/config/global" | jq '.' || echo "JSON解析失败"
  23. echo -e "\n"
  24. # 验证更新结果
  25. echo "5. 验证全局配置更新结果:"
  26. curl -s "$API_BASE/config/global" | jq '.' || echo "JSON解析失败"
  27. echo -e "\n"
  28. # 测试添加新的流配置
  29. echo "6. 添加新的流配置:"
  30. curl -s -X POST -H "Content-Type: application/json" \
  31. -d '{
  32. "rtsp_url": "rtsp://test.example.com/stream",
  33. "duration_seconds": 25,
  34. "weight": 1.8,
  35. "output_filename": "test_new_stream.mp4"
  36. }' \
  37. "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败"
  38. echo -e "\n"
  39. # 验证流配置添加结果
  40. echo "7. 验证流配置添加结果:"
  41. curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败"
  42. echo -e "\n"
  43. # 测试更新第一个流配置
  44. echo "8. 更新第一个流配置:"
  45. curl -s -X PUT -H "Content-Type: application/json" \
  46. -d '{"duration_seconds": 30, "weight": 2.0}' \
  47. "$API_BASE/config/streams/0" | jq '.' || echo "JSON解析失败"
  48. echo -e "\n"
  49. # 测试保存配置
  50. echo "9. 保存配置到文件:"
  51. curl -s -X POST -H "Content-Type: application/json" \
  52. -d '{"file_path": "config_backup.json"}' \
  53. "$API_BASE/config/save" | jq '.' || echo "JSON解析失败"
  54. echo -e "\n"
  55. # 测试重新加载配置
  56. echo "10. 重新加载配置:"
  57. curl -s -X POST "$API_BASE/config/reload" | jq '.' || echo "JSON解析失败"
  58. echo -e "\n"
  59. # 测试删除最后一个流配置(如果有多个)
  60. STREAM_COUNT=$(curl -s "$API_BASE/config/streams" | jq '.count' 2>/dev/null)
  61. if [ "$STREAM_COUNT" -gt 1 ] 2>/dev/null; then
  62. LAST_INDEX=$((STREAM_COUNT - 1))
  63. echo "11. 删除最后一个流配置(索引 $LAST_INDEX):"
  64. curl -s -X DELETE "$API_BASE/config/streams/$LAST_INDEX" | jq '.' || echo "JSON解析失败"
  65. echo -e "\n"
  66. echo "12. 验证删除结果:"
  67. curl -s "$API_BASE/config/streams" | jq '.' || echo "JSON解析失败"
  68. echo -e "\n"
  69. else
  70. echo "11. 跳过删除测试(只有一个流配置,不能删除)"
  71. echo -e "\n"
  72. fi
  73. echo "========================"
  74. echo "🎉 配置管理API测试完成"