Teste de Login API

/app/tests/meu-primeiro-test.yaml

high
2 Steps
Duration: 5ms
Success Rate: 100%
Successful Steps
2
100% success rate
Failed Steps
0
0% of total
⏭️
Skipped Steps
0
0% of total
🔗
HTTP Requests
2
100% requests
🔄
Iterações
0
0 steps com iterações

📊 Execution Timeline

# Status Step Name Type Duration Started At Details
1
Fazer login
POST /post
request
3ms 19/10/2025, 10:28:37
✅ Request completed successfully
2
Buscar perfil do usuário
GET /anything?username=test_user@flowtest.com&admin=true&name=John Doe
request
2ms 19/10/2025, 10:28:37
✅ Request completed successfully

🌐 HTTP Requests Debug Info

Fazer login

Step #1

3ms
cURL Command
curl -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: {{auth_token}}' -d '{"username":"test_user@flowtest.com","password":"test_password_123","token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"}' "http://httpbin/post"

📤 Request

Method: POST
URL: http://httpbin/post
Base URL: http://httpbin
Request Headers
Content-Type: application/json
X-Auth-Token: {{auth_token}}
Request Body
{
  "username": "test_user@flowtest.com",
  "password": "test_password_123",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
}

📥 Response

Status Code: 200
Duration: 3ms
Size: 879 bytes
Response Headers
server: gunicorn/19.9.0
date: Sun, 19 Oct 2025 10:28:37 GMT
connection: keep-alive
content-type: application/json
content-length: 1001
access-control-allow-origin: *
access-control-allow-credentials: true
Response Body
{
  "args": {},
  "data": "{\"username\":\"test_user@flowtest.com\",\"password\":\"test_password_123\",\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "application/json, text/plain, */*",
    "Accept-Encoding": "gzip, compress, deflate, br",
    "Connection": "keep-alive",
    "Content-Length": "251",
    "Content-Type": "application/json",
    "Host": "httpbin",
    "User-Agent": "axios/1.12.1",
    "X-Auth-Token": "{{auth_token}}"
  },
  "json": {
    "password": "test_password_123",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30",
    "username": "test_user@flowtest.com"
  },
  "origin": "172.18.0.3",
  "url": "http://httpbin/post"
}
📊
Total
9
assertions
Passed
9
assertions
📈
Success Rate
100%
success

status_code

PASSED
✓ Match
Condição
status_code equals 200
Assertion passou conforme esperado
Valor recebido: 200

body.json.token.type

PASSED
✓ Match
Condição
body.json.token.type equals string
Assertion passou conforme esperado
Valor recebido: string

body.json.token.pattern

PASSED
Condição
body.json.token.pattern equals ^[A-Za-z0-9-_.]+$
Comparação de Valores
Esperado expected
^[A-Za-z0-9-_.]+$
Recebido actual
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30

body.json.token.minLength

PASSED
Condição
body.json.token.minLength equals >= 10
Comparação de Valores
Esperado expected
>= 10
Recebido actual
172

body.json.token.notEmpty

PASSED
✓ Match
Condição
body.json.token.notEmpty equals true
Assertion passou conforme esperado
Valor recebido: true

custom.jwt_token_format

PASSED
✓ Match
Condição
custom.jwt_token_format equals true
Assertion passou conforme esperado
Valor recebido: true

custom.token_not_empty

PASSED
✓ Match
Condição
custom.token_not_empty equals true
Assertion passou conforme esperado
Valor recebido: true

custom.token_length_valid

PASSED
✓ Match
Condição
custom.token_length_valid equals true
Assertion passou conforme esperado
Valor recebido: true

custom.response_time_reasonable

PASSED
✓ Match
Condição
custom.response_time_reasonable equals true
Assertion passou conforme esperado
Valor recebido: true
Captured Variables
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
}
Available Variables
{
  "api_base_url": "http://localhost:8080",
  "test_credentials": {
    "username": "test_user@flowtest.com",
    "password": "test_password_123"
  },
  "auth_endpoints": {
    "login": "/post",
    "user_profile": "/anything"
  },
  "auth_flows_test.jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock_payload",
  "auth_flows_test.oauth2_access_token": "oauth2_access_token_xyz",
  "auth_flows_test.user_permissions": [
    "read",
    "write"
  ],
  "auth_flows_test.auth_flow_results": {
    "jwt_authentication": {
      "status": "{{jwt_login_success && jwt_valid && jwt_refresh_success ? 'success' : 'partial'}}",
      "tokens_issued": 2,
      "profile_access": "{{js: Boolean(variables.profile_fetch_success)}}"
    },
    "oauth2_authentication": {
      "status": "{{oauth2_token_exchange_success && oauth2_resource_access ? 'success' : 'partial'}}",
      "authorization_code_flow": "{{js: Boolean(variables.oauth2_auth_started)}}",
      "token_management": "{{js: Boolean(variables.oauth2_token_revoked)}}"
    },
    "security_validation": {
      "expired_tokens": "{{js: Boolean(variables.jwt_expired_handled)}}",
      "revoked_tokens": "{{js: Boolean(variables.revoked_token_rejected)}}",
      "permissions": "{{js: Boolean(variables.admin_permission_granted || variables.admin_permission_denied)}}"
    },
    "session_management": {
      "logout_success": "{{js: Boolean(variables.complete_logout)}}",
      "cleanup_complete": "{{js: Boolean(variables.all_tokens_revoked)}}"
    }
  },
  "complex-workflows-test.workflow_results": {
    "api_contract_validations": {
      "order_service": null,
      "payment_service": null,
      "user_service": null
    },
    "business_outcomes": {
      "customer_id": "{{customer_id}}",
      "items_purchased": 3,
      "order_id": null,
      "total_revenue": 594.96,
      "transaction_id": null,
      "workflow_completion": null
    },
    "ecommerce_workflow_results": {
      "cart_management": "success",
      "catalog_browsing": null,
      "customer_registration": null,
      "fulfillment_initiated": null,
      "order_created": null,
      "payment_processed": null,
      "product_details": null,
      "promotions_applied": null,
      "shipping_calculated": null
    },
    "end_to_end_success": true,
    "microservices_communication": {
      "inventory_service": null,
      "notification_service": null
    },
    "test_summary": "complex_workflows_ecommerce_contracts",
    "total_complex_workflow_tests": 13,
    "workflow_patterns_tested": [
      "customer_lifecycle_management",
      "product_catalog_interaction",
      "cart_and_checkout_process",
      "payment_transaction_flow",
      "order_fulfillment_pipeline",
      "api_contract_validation",
      "microservices_integration",
      "end_to_end_business_process",
      "workflow_analytics_tracking"
    ],
    "workflow_test_id": "workflow-ce7a02af-3257-4a3b-b77e-2dad7569115e"
  },
  "complex-workflows-test.ecommerce_data": {
    "cart_management": "success",
    "catalog_browsing": null,
    "customer_registration": null,
    "fulfillment_initiated": null,
    "order_created": null,
    "payment_processed": null,
    "product_details": null,
    "promotions_applied": null,
    "shipping_calculated": null
  },
  "complex-workflows-test.contract_validation_results": {
    "order_service": null,
    "payment_service": null,
    "user_service": null
  }
}

Buscar perfil do usuário

Step #2

2ms
cURL Command
curl -X GET -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30' "http://httpbin/anything?username=test_user@flowtest.com&admin=true&name=John Doe"

📤 Request

Method: GET
URL: http://httpbin/anything?username=test_user@flowtest.com&admin=true&name=John Doe
Base URL: http://httpbin
Request Headers
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30

📥 Response

Status Code: 200
Duration: 2ms
Size: 624 bytes
Response Headers
server: gunicorn/19.9.0
date: Sun, 19 Oct 2025 10:28:37 GMT
connection: keep-alive
content-type: application/json
content-length: 737
access-control-allow-origin: *
access-control-allow-credentials: true
Response Body
{
  "args": {
    "admin": "true",
    "name": "John Doe",
    "username": "test_user@flowtest.com"
  },
  "data": "",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "application/json, text/plain, */*",
    "Accept-Encoding": "gzip, compress, deflate, br",
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30",
    "Connection": "keep-alive",
    "Host": "httpbin",
    "User-Agent": "axios/1.12.1"
  },
  "json": null,
  "method": "GET",
  "origin": "172.18.0.3",
  "url": "http://httpbin/anything?username=test_user%40flowtest.com&admin=true&name=John Doe"
}
📊
Total
12
assertions
Passed
12
assertions
📈
Success Rate
100%
success

status_code

PASSED
✓ Match
Condição
status_code equals 200
Assertion passou conforme esperado
Valor recebido: 200

body.args.admin.equals

PASSED
Condição
body.args.admin.equals equals true
Comparação de Valores
Esperado expected
true
Recebido actual
true

body.args.name.equals

PASSED
✓ Match
Condição
body.args.name.equals equals John Doe
Assertion passou conforme esperado
Valor recebido: John Doe

body.args.name.type

PASSED
✓ Match
Condição
body.args.name.type equals string
Assertion passou conforme esperado
Valor recebido: string

body.args.name.minLength

PASSED
Condição
body.args.name.minLength equals >= 1
Comparação de Valores
Esperado expected
>= 1
Recebido actual
8

custom.admin_privileges_check

PASSED
✓ Match
Condição
custom.admin_privileges_check equals true
Assertion passou conforme esperado
Valor recebido: true

custom.name_not_empty

PASSED
✓ Match
Condição
custom.name_not_empty equals true
Assertion passou conforme esperado
Valor recebido: true

custom.name_format_valid

PASSED
✓ Match
Condição
custom.name_format_valid equals true
Assertion passou conforme esperado
Valor recebido: true

custom.username_in_query

PASSED
✓ Match
Condição
custom.username_in_query equals true
Assertion passou conforme esperado
Valor recebido: true

custom.authorization_header_present

PASSED
✓ Match
Condição
custom.authorization_header_present equals true
Assertion passou conforme esperado
Valor recebido: true

custom.response_contains_expected_data

PASSED
✓ Match
Condição
custom.response_contains_expected_data equals true
Assertion passou conforme esperado
Valor recebido: true

custom.token_in_authorization

PASSED
✓ Match
Condição
custom.token_in_authorization equals true
Assertion passou conforme esperado
Valor recebido: true
Captured Variables
{
  "user_name": "John Doe",
  "is_admin": "true"
}
Available Variables
{
  "api_base_url": "http://localhost:8080",
  "test_credentials": {
    "username": "test_user@flowtest.com",
    "password": "test_password_123"
  },
  "auth_endpoints": {
    "login": "/post",
    "user_profile": "/anything"
  },
  "auth_flows_test.jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock_payload",
  "auth_flows_test.oauth2_access_token": "oauth2_access_token_xyz",
  "auth_flows_test.user_permissions": [
    "read",
    "write"
  ],
  "auth_flows_test.auth_flow_results": {
    "jwt_authentication": {
      "status": "{{jwt_login_success && jwt_valid && jwt_refresh_success ? 'success' : 'partial'}}",
      "tokens_issued": 2,
      "profile_access": "{{js: Boolean(variables.profile_fetch_success)}}"
    },
    "oauth2_authentication": {
      "status": "{{oauth2_token_exchange_success && oauth2_resource_access ? 'success' : 'partial'}}",
      "authorization_code_flow": "{{js: Boolean(variables.oauth2_auth_started)}}",
      "token_management": "{{js: Boolean(variables.oauth2_token_revoked)}}"
    },
    "security_validation": {
      "expired_tokens": "{{js: Boolean(variables.jwt_expired_handled)}}",
      "revoked_tokens": "{{js: Boolean(variables.revoked_token_rejected)}}",
      "permissions": "{{js: Boolean(variables.admin_permission_granted || variables.admin_permission_denied)}}"
    },
    "session_management": {
      "logout_success": "{{js: Boolean(variables.complete_logout)}}",
      "cleanup_complete": "{{js: Boolean(variables.all_tokens_revoked)}}"
    }
  },
  "complex-workflows-test.workflow_results": {
    "api_contract_validations": {
      "order_service": null,
      "payment_service": null,
      "user_service": null
    },
    "business_outcomes": {
      "customer_id": "{{customer_id}}",
      "items_purchased": 3,
      "order_id": null,
      "total_revenue": 594.96,
      "transaction_id": null,
      "workflow_completion": null
    },
    "ecommerce_workflow_results": {
      "cart_management": "success",
      "catalog_browsing": null,
      "customer_registration": null,
      "fulfillment_initiated": null,
      "order_created": null,
      "payment_processed": null,
      "product_details": null,
      "promotions_applied": null,
      "shipping_calculated": null
    },
    "end_to_end_success": true,
    "microservices_communication": {
      "inventory_service": null,
      "notification_service": null
    },
    "test_summary": "complex_workflows_ecommerce_contracts",
    "total_complex_workflow_tests": 13,
    "workflow_patterns_tested": [
      "customer_lifecycle_management",
      "product_catalog_interaction",
      "cart_and_checkout_process",
      "payment_transaction_flow",
      "order_fulfillment_pipeline",
      "api_contract_validation",
      "microservices_integration",
      "end_to_end_business_process",
      "workflow_analytics_tracking"
    ],
    "workflow_test_id": "workflow-ce7a02af-3257-4a3b-b77e-2dad7569115e"
  },
  "complex-workflows-test.ecommerce_data": {
    "cart_management": "success",
    "catalog_browsing": null,
    "customer_registration": null,
    "fulfillment_initiated": null,
    "order_created": null,
    "payment_processed": null,
    "product_details": null,
    "promotions_applied": null,
    "shipping_calculated": null
  },
  "complex-workflows-test.contract_validation_results": {
    "order_service": null,
    "payment_service": null,
    "user_service": null
  }
}

📄 Raw Suite Data

Complete Suite Data
{
  "node_id": "auth",
  "suite_name": "Teste de Login API",
  "file_path": "/app/tests/meu-primeiro-test.yaml",
  "priority": "high",
  "start_time": "2025-10-19T10:28:37.597Z",
  "end_time": "2025-10-19T10:28:37.602Z",
  "duration_ms": 5,
  "status": "success",
  "steps_executed": 2,
  "steps_successful": 2,
  "steps_failed": 0,
  "success_rate": 100,
  "steps_results": [
    {
      "step_id": "step-1-fazer-login",
      "qualified_step_id": "auth::step-1-fazer-login",
      "step_name": "Fazer login",
      "status": "success",
      "duration_ms": 3,
      "request_details": {
        "method": "POST",
        "url": "/post",
        "headers": {
          "Content-Type": "application/json",
          "X-Auth-Token": "{{auth_token}}"
        },
        "body": {
          "username": "test_user@flowtest.com",
          "password": "test_password_123",
          "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
        },
        "base_url": "http://httpbin",
        "full_url": "http://httpbin/post",
        "curl_command": "curl -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: {{auth_token}}' -d '{\"username\":\"test_user@flowtest.com\",\"password\":\"test_password_123\",\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\"}' \"http://httpbin/post\"",
        "raw_request": "POST /post HTTP/1.1\r\nHost: httpbin\r\nContent-Type: application/json\r\nX-Auth-Token: {{auth_token}}\r\nContent-Length: 251\r\n\r\n{\"username\":\"test_user@flowtest.com\",\"password\":\"test_password_123\",\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\"}",
        "raw_url": "{{base_url}}/{{auth_endpoints.login}}"
      },
      "response_details": {
        "status_code": 200,
        "headers": {
          "server": "gunicorn/19.9.0",
          "date": "Sun, 19 Oct 2025 10:28:37 GMT",
          "connection": "keep-alive",
          "content-type": "application/json",
          "content-length": "1001",
          "access-control-allow-origin": "*",
          "access-control-allow-credentials": "true"
        },
        "body": {
          "args": {},
          "data": "{\"username\":\"test_user@flowtest.com\",\"password\":\"test_password_123\",\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\"}",
          "files": {},
          "form": {},
          "headers": {
            "Accept": "application/json, text/plain, */*",
            "Accept-Encoding": "gzip, compress, deflate, br",
            "Connection": "keep-alive",
            "Content-Length": "251",
            "Content-Type": "application/json",
            "Host": "httpbin",
            "User-Agent": "axios/1.12.1",
            "X-Auth-Token": "{{auth_token}}"
          },
          "json": {
            "password": "test_password_123",
            "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30",
            "username": "test_user@flowtest.com"
          },
          "origin": "172.18.0.3",
          "url": "http://httpbin/post"
        },
        "size_bytes": 879,
        "raw_response": "HTTP/1.1 200 OK\r\nserver: gunicorn/19.9.0\r\ndate: Sun, 19 Oct 2025 10:28:37 GMT\r\nconnection: keep-alive\r\ncontent-type: application/json\r\ncontent-length: 1001\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\n\r\n{\n  \"args\": {},\n  \"data\": \"{\\\"username\\\":\\\"test_user@flowtest.com\\\",\\\"password\\\":\\\"test_password_123\\\",\\\"token\\\":\\\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\\\"}\",\n  \"files\": {},\n  \"form\": {},\n  \"headers\": {\n    \"Accept\": \"application/json, text/plain, */*\",\n    \"Accept-Encoding\": \"gzip, compress, deflate, br\",\n    \"Connection\": \"keep-alive\",\n    \"Content-Length\": \"251\",\n    \"Content-Type\": \"application/json\",\n    \"Host\": \"httpbin\",\n    \"User-Agent\": \"axios/1.12.1\",\n    \"X-Auth-Token\": \"{{auth_token}}\"\n  },\n  \"json\": {\n    \"password\": \"test_password_123\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\",\n    \"username\": \"test_user@flowtest.com\"\n  },\n  \"origin\": \"172.18.0.3\",\n  \"url\": \"http://httpbin/post\"\n}"
      },
      "assertions_results": [
        {
          "field": "status_code",
          "expected": 200,
          "actual": 200,
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.json.token.type",
          "expected": "string",
          "actual": "string",
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.json.token.pattern",
          "expected": "^[A-Za-z0-9-_.]+$",
          "actual": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30",
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.json.token.minLength",
          "expected": ">= 10",
          "actual": 172,
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.json.token.notEmpty",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "OK"
        },
        {
          "field": "custom.jwt_token_format",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Token JWT deve ter 3 partes separadas por ponto"
        },
        {
          "field": "custom.token_not_empty",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Token não pode ser vazio ou apenas espaços"
        },
        {
          "field": "custom.token_length_valid",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Token deve ter comprimento adequado para JWT"
        },
        {
          "field": "custom.response_time_reasonable",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Tempo de resposta deve ser menor que 5 segundos"
        }
      ],
      "captured_variables": {
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
      },
      "available_variables": {
        "api_base_url": "http://localhost:8080",
        "test_credentials": {
          "username": "test_user@flowtest.com",
          "password": "test_password_123"
        },
        "auth_endpoints": {
          "login": "/post",
          "user_profile": "/anything"
        },
        "auth_flows_test.jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock_payload",
        "auth_flows_test.oauth2_access_token": "oauth2_access_token_xyz",
        "auth_flows_test.user_permissions": [
          "read",
          "write"
        ],
        "auth_flows_test.auth_flow_results": {
          "jwt_authentication": {
            "status": "{{jwt_login_success && jwt_valid && jwt_refresh_success ? 'success' : 'partial'}}",
            "tokens_issued": 2,
            "profile_access": "{{js: Boolean(variables.profile_fetch_success)}}"
          },
          "oauth2_authentication": {
            "status": "{{oauth2_token_exchange_success && oauth2_resource_access ? 'success' : 'partial'}}",
            "authorization_code_flow": "{{js: Boolean(variables.oauth2_auth_started)}}",
            "token_management": "{{js: Boolean(variables.oauth2_token_revoked)}}"
          },
          "security_validation": {
            "expired_tokens": "{{js: Boolean(variables.jwt_expired_handled)}}",
            "revoked_tokens": "{{js: Boolean(variables.revoked_token_rejected)}}",
            "permissions": "{{js: Boolean(variables.admin_permission_granted || variables.admin_permission_denied)}}"
          },
          "session_management": {
            "logout_success": "{{js: Boolean(variables.complete_logout)}}",
            "cleanup_complete": "{{js: Boolean(variables.all_tokens_revoked)}}"
          }
        },
        "complex-workflows-test.workflow_results": {
          "api_contract_validations": {
            "order_service": null,
            "payment_service": null,
            "user_service": null
          },
          "business_outcomes": {
            "customer_id": "{{customer_id}}",
            "items_purchased": 3,
            "order_id": null,
            "total_revenue": 594.96,
            "transaction_id": null,
            "workflow_completion": null
          },
          "ecommerce_workflow_results": {
            "cart_management": "success",
            "catalog_browsing": null,
            "customer_registration": null,
            "fulfillment_initiated": null,
            "order_created": null,
            "payment_processed": null,
            "product_details": null,
            "promotions_applied": null,
            "shipping_calculated": null
          },
          "end_to_end_success": true,
          "microservices_communication": {
            "inventory_service": null,
            "notification_service": null
          },
          "test_summary": "complex_workflows_ecommerce_contracts",
          "total_complex_workflow_tests": 13,
          "workflow_patterns_tested": [
            "customer_lifecycle_management",
            "product_catalog_interaction",
            "cart_and_checkout_process",
            "payment_transaction_flow",
            "order_fulfillment_pipeline",
            "api_contract_validation",
            "microservices_integration",
            "end_to_end_business_process",
            "workflow_analytics_tracking"
          ],
          "workflow_test_id": "workflow-ce7a02af-3257-4a3b-b77e-2dad7569115e"
        },
        "complex-workflows-test.ecommerce_data": {
          "cart_management": "success",
          "catalog_browsing": null,
          "customer_registration": null,
          "fulfillment_initiated": null,
          "order_created": null,
          "payment_processed": null,
          "product_details": null,
          "promotions_applied": null,
          "shipping_calculated": null
        },
        "complex-workflows-test.contract_validation_results": {
          "order_service": null,
          "payment_service": null,
          "user_service": null
        }
      }
    },
    {
      "step_id": "step-2-buscar-perfil-do-usu-rio",
      "qualified_step_id": "auth::step-2-buscar-perfil-do-usu-rio",
      "step_name": "Buscar perfil do usuário",
      "status": "success",
      "duration_ms": 2,
      "request_details": {
        "method": "GET",
        "url": "/anything?username=test_user@flowtest.com&admin=true&name=John Doe",
        "headers": {
          "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30"
        },
        "base_url": "http://httpbin",
        "full_url": "http://httpbin/anything?username=test_user@flowtest.com&admin=true&name=John Doe",
        "curl_command": "curl -X GET -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30' \"http://httpbin/anything?username=test_user@flowtest.com&admin=true&name=John Doe\"",
        "raw_request": "GET /anything?username=test_user@flowtest.com&admin=true&name=John%20Doe HTTP/1.1\r\nHost: httpbin\r\nAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\r\n\r\n",
        "raw_url": "{{base_url}}/{{auth_endpoints.user_profile}}?username={{test_credentials.username}}&admin=true&name={{mock_responses.user_profile.name}}"
      },
      "response_details": {
        "status_code": 200,
        "headers": {
          "server": "gunicorn/19.9.0",
          "date": "Sun, 19 Oct 2025 10:28:37 GMT",
          "connection": "keep-alive",
          "content-type": "application/json",
          "content-length": "737",
          "access-control-allow-origin": "*",
          "access-control-allow-credentials": "true"
        },
        "body": {
          "args": {
            "admin": "true",
            "name": "John Doe",
            "username": "test_user@flowtest.com"
          },
          "data": "",
          "files": {},
          "form": {},
          "headers": {
            "Accept": "application/json, text/plain, */*",
            "Accept-Encoding": "gzip, compress, deflate, br",
            "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30",
            "Connection": "keep-alive",
            "Host": "httpbin",
            "User-Agent": "axios/1.12.1"
          },
          "json": null,
          "method": "GET",
          "origin": "172.18.0.3",
          "url": "http://httpbin/anything?username=test_user%40flowtest.com&admin=true&name=John Doe"
        },
        "size_bytes": 624,
        "raw_response": "HTTP/1.1 200 OK\r\nserver: gunicorn/19.9.0\r\ndate: Sun, 19 Oct 2025 10:28:37 GMT\r\nconnection: keep-alive\r\ncontent-type: application/json\r\ncontent-length: 737\r\naccess-control-allow-origin: *\r\naccess-control-allow-credentials: true\r\n\r\n{\n  \"args\": {\n    \"admin\": \"true\",\n    \"name\": \"John Doe\",\n    \"username\": \"test_user@flowtest.com\"\n  },\n  \"data\": \"\",\n  \"files\": {},\n  \"form\": {},\n  \"headers\": {\n    \"Accept\": \"application/json, text/plain, */*\",\n    \"Accept-Encoding\": \"gzip, compress, deflate, br\",\n    \"Authorization\": \"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\",\n    \"Connection\": \"keep-alive\",\n    \"Host\": \"httpbin\",\n    \"User-Agent\": \"axios/1.12.1\"\n  },\n  \"json\": null,\n  \"method\": \"GET\",\n  \"origin\": \"172.18.0.3\",\n  \"url\": \"http://httpbin/anything?username=test_user%40flowtest.com&admin=true&name=John Doe\"\n}"
      },
      "assertions_results": [
        {
          "field": "status_code",
          "expected": 200,
          "actual": 200,
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.args.admin.equals",
          "expected": true,
          "actual": "true",
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.args.name.equals",
          "expected": "John Doe",
          "actual": "John Doe",
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.args.name.type",
          "expected": "string",
          "actual": "string",
          "passed": true,
          "message": "OK"
        },
        {
          "field": "body.args.name.minLength",
          "expected": ">= 1",
          "actual": 8,
          "passed": true,
          "message": "OK"
        },
        {
          "field": "custom.admin_privileges_check",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Usuário deve ter privilégios de administrador"
        },
        {
          "field": "custom.name_not_empty",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Nome do usuário não pode ser vazio"
        },
        {
          "field": "custom.name_format_valid",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Nome deve ter pelo menos nome e sobrenome"
        },
        {
          "field": "custom.username_in_query",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Username deve ser um email válido"
        },
        {
          "field": "custom.authorization_header_present",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Header Authorization deve estar presente e começar com 'Bearer '"
        },
        {
          "field": "custom.response_contains_expected_data",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Response deve conter pelo menos 3 parâmetros"
        },
        {
          "field": "custom.token_in_authorization",
          "expected": true,
          "actual": true,
          "passed": true,
          "message": "Header Authorization deve conter o token JWT"
        }
      ],
      "captured_variables": {
        "user_name": "John Doe",
        "is_admin": "true"
      },
      "available_variables": {
        "api_base_url": "http://localhost:8080",
        "test_credentials": {
          "username": "test_user@flowtest.com",
          "password": "test_password_123"
        },
        "auth_endpoints": {
          "login": "/post",
          "user_profile": "/anything"
        },
        "auth_flows_test.jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock_payload",
        "auth_flows_test.oauth2_access_token": "oauth2_access_token_xyz",
        "auth_flows_test.user_permissions": [
          "read",
          "write"
        ],
        "auth_flows_test.auth_flow_results": {
          "jwt_authentication": {
            "status": "{{jwt_login_success && jwt_valid && jwt_refresh_success ? 'success' : 'partial'}}",
            "tokens_issued": 2,
            "profile_access": "{{js: Boolean(variables.profile_fetch_success)}}"
          },
          "oauth2_authentication": {
            "status": "{{oauth2_token_exchange_success && oauth2_resource_access ? 'success' : 'partial'}}",
            "authorization_code_flow": "{{js: Boolean(variables.oauth2_auth_started)}}",
            "token_management": "{{js: Boolean(variables.oauth2_token_revoked)}}"
          },
          "security_validation": {
            "expired_tokens": "{{js: Boolean(variables.jwt_expired_handled)}}",
            "revoked_tokens": "{{js: Boolean(variables.revoked_token_rejected)}}",
            "permissions": "{{js: Boolean(variables.admin_permission_granted || variables.admin_permission_denied)}}"
          },
          "session_management": {
            "logout_success": "{{js: Boolean(variables.complete_logout)}}",
            "cleanup_complete": "{{js: Boolean(variables.all_tokens_revoked)}}"
          }
        },
        "complex-workflows-test.workflow_results": {
          "api_contract_validations": {
            "order_service": null,
            "payment_service": null,
            "user_service": null
          },
          "business_outcomes": {
            "customer_id": "{{customer_id}}",
            "items_purchased": 3,
            "order_id": null,
            "total_revenue": 594.96,
            "transaction_id": null,
            "workflow_completion": null
          },
          "ecommerce_workflow_results": {
            "cart_management": "success",
            "catalog_browsing": null,
            "customer_registration": null,
            "fulfillment_initiated": null,
            "order_created": null,
            "payment_processed": null,
            "product_details": null,
            "promotions_applied": null,
            "shipping_calculated": null
          },
          "end_to_end_success": true,
          "microservices_communication": {
            "inventory_service": null,
            "notification_service": null
          },
          "test_summary": "complex_workflows_ecommerce_contracts",
          "total_complex_workflow_tests": 13,
          "workflow_patterns_tested": [
            "customer_lifecycle_management",
            "product_catalog_interaction",
            "cart_and_checkout_process",
            "payment_transaction_flow",
            "order_fulfillment_pipeline",
            "api_contract_validation",
            "microservices_integration",
            "end_to_end_business_process",
            "workflow_analytics_tracking"
          ],
          "workflow_test_id": "workflow-ce7a02af-3257-4a3b-b77e-2dad7569115e"
        },
        "complex-workflows-test.ecommerce_data": {
          "cart_management": "success",
          "catalog_browsing": null,
          "customer_registration": null,
          "fulfillment_initiated": null,
          "order_created": null,
          "payment_processed": null,
          "product_details": null,
          "promotions_applied": null,
          "shipping_calculated": null
        },
        "complex-workflows-test.contract_validation_results": {
          "order_service": null,
          "payment_service": null,
          "user_service": null
        }
      }
    }
  ],
  "variables_captured": {},
  "available_variables": {
    "api_base_url": "http://localhost:8080",
    "test_credentials": {
      "username": "test_user@flowtest.com",
      "password": "test_password_123"
    },
    "auth_endpoints": {
      "login": "/post",
      "user_profile": "/anything"
    },
    "auth_flows_test.jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.mock_payload",
    "auth_flows_test.oauth2_access_token": "oauth2_access_token_xyz",
    "auth_flows_test.user_permissions": [
      "read",
      "write"
    ],
    "auth_flows_test.auth_flow_results": {
      "jwt_authentication": {
        "status": "{{jwt_login_success && jwt_valid && jwt_refresh_success ? 'success' : 'partial'}}",
        "tokens_issued": 2,
        "profile_access": "{{js: Boolean(variables.profile_fetch_success)}}"
      },
      "oauth2_authentication": {
        "status": "{{oauth2_token_exchange_success && oauth2_resource_access ? 'success' : 'partial'}}",
        "authorization_code_flow": "{{js: Boolean(variables.oauth2_auth_started)}}",
        "token_management": "{{js: Boolean(variables.oauth2_token_revoked)}}"
      },
      "security_validation": {
        "expired_tokens": "{{js: Boolean(variables.jwt_expired_handled)}}",
        "revoked_tokens": "{{js: Boolean(variables.revoked_token_rejected)}}",
        "permissions": "{{js: Boolean(variables.admin_permission_granted || variables.admin_permission_denied)}}"
      },
      "session_management": {
        "logout_success": "{{js: Boolean(variables.complete_logout)}}",
        "cleanup_complete": "{{js: Boolean(variables.all_tokens_revoked)}}"
      }
    },
    "complex-workflows-test.workflow_results": {
      "api_contract_validations": {
        "order_service": null,
        "payment_service": null,
        "user_service": null
      },
      "business_outcomes": {
        "customer_id": "{{customer_id}}",
        "items_purchased": 3,
        "order_id": null,
        "total_revenue": 594.96,
        "transaction_id": null,
        "workflow_completion": null
      },
      "ecommerce_workflow_results": {
        "cart_management": "success",
        "catalog_browsing": null,
        "customer_registration": null,
        "fulfillment_initiated": null,
        "order_created": null,
        "payment_processed": null,
        "product_details": null,
        "promotions_applied": null,
        "shipping_calculated": null
      },
      "end_to_end_success": true,
      "microservices_communication": {
        "inventory_service": null,
        "notification_service": null
      },
      "test_summary": "complex_workflows_ecommerce_contracts",
      "total_complex_workflow_tests": 13,
      "workflow_patterns_tested": [
        "customer_lifecycle_management",
        "product_catalog_interaction",
        "cart_and_checkout_process",
        "payment_transaction_flow",
        "order_fulfillment_pipeline",
        "api_contract_validation",
        "microservices_integration",
        "end_to_end_business_process",
        "workflow_analytics_tracking"
      ],
      "workflow_test_id": "workflow-ce7a02af-3257-4a3b-b77e-2dad7569115e"
    },
    "complex-workflows-test.ecommerce_data": {
      "cart_management": "success",
      "catalog_browsing": null,
      "customer_registration": null,
      "fulfillment_initiated": null,
      "order_created": null,
      "payment_processed": null,
      "product_details": null,
      "promotions_applied": null,
      "shipping_calculated": null
    },
    "complex-workflows-test.contract_validation_results": {
      "order_service": null,
      "payment_service": null,
      "user_service": null
    }
  },
  "suite_yaml_content": "# tests/meu-primeiro-teste.yaml\nsuite_name: \"Teste de Login API\"\nnode_id: \"auth\"\nbase_url: \"{{httpbin_url}}\"\n\nvariables:\n  secure_signing_key: \"NTNv7j0TuYARvmNMmWXo6fKvM4o6nv/aUi9ryX38ZH+L1bkrnD1ObOQ8JAUmHCBq7Iy7otZcyAagBLHVKvvYaIpmMuxmARQ97jUVG16Jkpkp1wXOPsrF9zwew6TpczyHkHgX5EuLg2MeBuiT/qJACs1J0apruOOJCg/gOtkjB4c=\"\n  # Credenciais de teste\n  test_credentials:\n    username: \"test_user@flowtest.com\"\n    password: \"test_password_123\"\n\n  # URLs simuladas de autenticação\n  auth_endpoints:\n    login: \"/post\"\n    user_profile: \"/anything\"\n\n  # Tokens simulados para testes\n  mock_responses:\n    jwt_login_success:\n      # Acess Token valido (exemplo fictício) jwt.io\n      access_token: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30\"\n\n    user_profile:\n      name: \"John Doe\"\n      admin: true\n      username: \"test_user@flowtest.com\"\n\n# Exports para que possa utilizar em outras suits\n# Será exportada como {{auth.token}} \"node_id.variavelName\"\nexports:\n  - token\n\nsteps:\n  # Step 1\n  - name: \"Fazer login\"\n    request:\n      method: POST\n      url: \"{{auth_endpoints.login}}\"\n      headers:\n        Content-Type: \"application/json\"\n        X-Auth-Token: \"{{auth_token}}\"\n      body:\n        username: \"{{test_credentials.username}}\"\n        password: \"{{test_credentials.password}}\"\n        # Simula para o httpbin.org/post retorne o token no response\n        token: \"{{mock_responses.jwt_login_success.access_token}}\"\n    assert:\n      status_code: 200\n      body:\n        json:\n          token:\n            type: \"string\"\n            pattern: \"^[A-Za-z0-9-_.]+$\"\n            minLength: 10\n            notEmpty: true\n      # Custom assertions com JavaScript\n      custom:\n        - name: \"jwt_token_format\"\n          condition: \"body.json.token.split('.').length === 3\"\n          message: \"Token JWT deve ter 3 partes separadas por ponto\"\n\n        - name: \"token_not_empty\"\n          condition: \"body.json.token && body.json.token.trim().length > 0\"\n          message: \"Token não pode ser vazio ou apenas espaços\"\n\n        - name: \"token_length_valid\"\n          condition: \"body.json.token.length > 50\"\n          message: \"Token deve ter comprimento adequado para JWT\"\n\n        - name: \"response_time_reasonable\"\n          condition: \"response_time < 5000\"\n          message: \"Tempo de resposta deve ser menor que 5 segundos\"\n    capture:\n      token: \"body.json.token\"\n\n  # Step 2\n  - name: \"Buscar perfil do usuário\"\n    request:\n      method: GET\n      url: \"{{auth_endpoints.user_profile}}?username={{test_credentials.username}}&admin=true&name={{mock_responses.user_profile.name}}\"\n      headers:\n        # Variaveis de mesma suite não precisa de prefixo.\n        Authorization: \"Bearer {{token}}\"\n    assert:\n      status_code: 200\n      body:\n        args:\n          admin:\n            equals: true\n          name:\n            type: \"string\"\n            equals: \"{{mock_responses.user_profile.name}}\"\n            minLength: 1\n      # Custom assertions para validação avançada\n      custom:\n        - name: \"admin_privileges_check\"\n          condition: \"body.args.admin === 'true' || body.args.admin === true\"\n          message: \"Usuário deve ter privilégios de administrador\"\n\n        - name: \"name_not_empty\"\n          condition: \"body.args.name && body.args.name.trim().length > 0\"\n          message: \"Nome do usuário não pode ser vazio\"\n\n        - name: \"name_format_valid\"\n          condition: \"body.args.name.split(' ').length >= 2\"\n          message: \"Nome deve ter pelo menos nome e sobrenome\"\n\n        - name: \"username_in_query\"\n          condition: \"body.args.username && body.args.username.includes('@')\"\n          message: \"Username deve ser um email válido\"\n\n        - name: \"authorization_header_present\"\n          condition: \"body.headers.Authorization && body.headers.Authorization.startsWith('Bearer ')\"\n          message: \"Header Authorization deve estar presente e começar com 'Bearer '\"\n\n        - name: \"response_contains_expected_data\"\n          condition: \"Object.keys(body.args).length >= 3\"\n          message: \"Response deve conter pelo menos 3 parâmetros\"\n\n        - name: \"token_in_authorization\"\n          condition: \"body.headers.Authorization && body.headers.Authorization.includes('eyJ')\"\n          message: \"Header Authorization deve conter o token JWT\"\n\n    capture:\n      user_name: \"body.args.name\"\n      is_admin: \"body.args.admin\""
}
Flow Test Engine
Report generated on 10/19/2025, 10:28:45 AM
© 2025 Flow Test Engine. Dynamic Reporting System.