#!/bin/bash # DMS合规性测试工具 - curl测试脚本 # 对应原始命令:python run_api_tests.py --base-url http://127.0.0.1:5001/ --dms ./assets/doc/dms/domain.json --stages-dir ./custom_stages --custom-test-cases-dir ./custom_testcases -v -o ./test_reports/ echo "=== DMS合规性测试工具 - API测试 ===" # 配置变量 API_SERVER="http://localhost:5050" TARGET_API="http://host.docker.internal:5001/" # Docker内部访问宿主机 OUTPUT_LOG="log_dms_docker.txt" echo "[信息] 目标API: $TARGET_API" echo "[信息] API服务器: $API_SERVER" echo "[信息] 输出日志: $OUTPUT_LOG" # 创建测试配置JSON TEST_CONFIG='{ "base-url": "'$TARGET_API'", "dms": "./assets/doc/dms/domain.json", "stages-dir": "./custom_stages", "custom-test-cases-dir": "./custom_testcases", "verbose": true, "output": "./test_reports/", "format": "json", "generate-pdf": true, "strictness-level": "CRITICAL", "ignore-ssl": true }' echo "[信息] 测试配置:" echo "$TEST_CONFIG" | jq . 2>/dev/null || echo "$TEST_CONFIG" # 执行测试 echo "" echo "[信息] 开始执行测试..." echo "[信息] 这可能需要几分钟时间..." curl -X POST "$API_SERVER/run" \ -H "Content-Type: application/json" \ -d "$TEST_CONFIG" \ -w "\n\n=== HTTP响应信息 ===\nHTTP状态码: %{http_code}\n响应时间: %{time_total}s\n" \ > "$OUTPUT_LOG" 2>&1 # 检查结果 if [ $? -eq 0 ]; then echo "[成功] 测试完成!" echo "[信息] 查看详细日志: cat $OUTPUT_LOG" echo "[信息] 查看测试报告: ls -la test_reports/" # 显示简要结果 echo "" echo "=== 测试结果摘要 ===" if command -v jq >/dev/null 2>&1; then # 如果有jq,格式化显示JSON结果 tail -n +1 "$OUTPUT_LOG" | jq -r '.status // "未知状态"' 2>/dev/null || echo "请查看日志文件获取详细结果" else # 没有jq,显示原始结果 echo "请查看日志文件: $OUTPUT_LOG" fi else echo "[错误] 测试执行失败" echo "[信息] 查看错误日志: cat $OUTPUT_LOG" fi echo "" echo "=== 管理命令 ===" echo "- 查看服务状态: docker-compose ps" echo "- 查看服务日志: docker-compose logs" echo "- 查看测试日志: cat $OUTPUT_LOG" echo "- 查看测试报告: ls -la test_reports/"