From db94de5f72a22106aa7843da603986e39f071dc4 Mon Sep 17 00:00:00 2001 From: Mohamed Date: Tue, 7 Oct 2025 07:42:23 +0300 Subject: [PATCH] Save results to test_results file --- test_api.sh | 17 +++++++++++++++-- test_results.log | 7 +++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 test_results.log diff --git a/test_api.sh b/test_api.sh index 6f24f59..f06cdc6 100644 --- a/test_api.sh +++ b/test_api.sh @@ -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" diff --git a/test_results.log b/test_results.log new file mode 100644 index 0000000..d95d2bb --- /dev/null +++ b/test_results.log @@ -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": "" }