Save results to test_results file

هذا الالتزام موجود في:
2025-10-07 07:42:23 +03:00
ملتزم من قبل Kamar El-Dawla Shalaby
الأصل 4e3c036c0a
التزام db94de5f72
2 ملفات معدلة مع 22 إضافات و2 حذوفات

عرض الملف

@@ -7,6 +7,7 @@ set -o nounset
BASE_URL="${BASE_URL:-http://localhost:5004}"
TEST_FILE="${1:-test_cases.json}"
TIMEOUT="${2:-10}"
RESULTS_FILE="${3:-test_results.log}"
INSECURE="${INSECURE:-false}"
if ! command -v curl >/dev/null 2>&1; then
@@ -34,6 +35,7 @@ if ! jq -e '.' "$TEST_FILE" >/dev/null 2>&1; then
exit 2
fi
RESULTS=()
idx=0
TOTAL=$(jq 'length' "$TEST_FILE")
@@ -55,6 +57,16 @@ jq -c '.[]' "$TEST_FILE" | while read -r test; do
if [[ -n "$body" ]]; then
if ! encoded_body=$(jq -r '@json' <<<"$body" 2>/dev/null); then
echo "[$idx/$TOTAL] $name -> ERROR: Invalid JSON body" >&2
echo $(jq -n \
--arg name "$name" \
--arg url "$url" \
--arg method "$method" \
--arg http_code "0" \
--argjson success "false" \
--arg latency_ms "0" \
--arg bytes "0" \
--arg last_err "invalid_json_body" \
'{name:$name, url:$url, method:$method, http_code:($http_code|tonumber), success:$success, latency_ms:($latency_ms|tonumber), bytes:($bytes|tonumber), last_err:$last_err}') >> "$RESULTS_FILE"
continue
fi
fi
@@ -152,7 +164,7 @@ jq -c '.[]' "$TEST_FILE" | while read -r test; do
fi
done
result=$(jq -n \
echo $(jq -n \
--arg name "$name" \
--arg url "$url" \
--arg method "$method" \
@@ -161,7 +173,7 @@ jq -c '.[]' "$TEST_FILE" | while read -r test; do
--arg latency_ms "$latency_ms" \
--arg bytes "$bytes" \
--arg last_err "$last_err" \
'{name:$name, url:$url, method:$method, http_code:($http_code|tonumber), success:$success, latency_ms:($latency_ms|tonumber), bytes:($bytes|tonumber), last_err:$last_err}')
'{name:$name, url:$url, method:$method, http_code:($http_code|tonumber), success:$success, latency_ms:($latency_ms|tonumber), bytes:($bytes|tonumber), last_err:$last_err}') >> "$RESULTS_FILE"
if [[ "$success" == true ]]; then
echo "[$idx/$TOTAL] $name -> OK (status $http_code, ${latency_ms}ms)"
@@ -176,3 +188,4 @@ jq -c '.[]' "$TEST_FILE" | while read -r test; do
rm -f "$temp_resp"
done
echo "Results saved to $RESULTS_FILE"

7
test_results.log Normal file
عرض الملف

@@ -0,0 +1,7 @@
{ "name": "get-all-wonders", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders", "method": "GET", "http_code": 200, "success": true, "latency_ms": 569, "bytes": 1103, "last_err": "" }
{ "name": "get-wonder-by-id-1", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders/1", "method": "GET", "http_code": 200, "success": true, "latency_ms": 419, "bytes": 150, "last_err": "" }
{ "name": "get-wonder-by-id-invalid", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders/abc", "method": "GET", "http_code": 400, "success": true, "latency_ms": 403, "bytes": 54, "last_err": "" }
{ "name": "create-wonder", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders", "method": "POST", "http_code": 201, "success": true, "latency_ms": 584, "bytes": 138, "last_err": "" }
{ "name": "update-wonder-1", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders/1", "method": "PUT", "http_code": 204, "success": true, "latency_ms": 401, "bytes": 0, "last_err": "" }
{ "name": "delete-wonder-temp", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders/6", "method": "DELETE", "http_code": 404, "success": true, "latency_ms": 408, "bytes": 40, "last_err": "" }
{ "name": "get-random-wonder", "url": "https://8d5d5fb6ad9e.ngrok-free.app/api/wonders/random", "method": "GET", "http_code": 200, "success": true, "latency_ms": 406, "bytes": 208, "last_err": "" }