Saltearse al contenido

Ejemplo Completo

Este ejemplo demuestra todas las características principales de Rext HTTP trabajando juntas en un escenario realista de testing de APIs.

@config
baseUrl: https://api.example.com
headers:
Content-Type: application/json
assert:
status >= 200
###
@id a1b2c3
@collection Auth
@name Login
POST /auth/login
{
"email": "{{email}}",
"password": "{{password}}"
}
@capture env.token = body.access_token
@assert status == 200
@assert body.token exists
@assert duration < 2000
###
@collection Auth
@name Get Profile
@pre a1b2c3
GET /profile
Authorization: Bearer {{token}}
@assert status == 200
@assert body.email exists
@assert body.roles isArray
@assert header.content-type contains json
  • baseUrl se establece como https://api.example.com
  • Todos los requests reciben Content-Type: application/json
  • La aserción por defecto status >= 200 se agrega a cada request
  • La URL se resuelve a https://api.example.com/auth/login
  • {{email}} y {{password}} se resuelven del entorno activo
  • Después del éxito, token se captura y guarda en el scope de entorno
  • Las aserciones validan: status es 200, token existe, tiempo de respuesta < 2s
  • @pre a1b2c3 ejecuta el request de Login primero (si no se ha ejecutado ya)
  • {{token}} se resuelve del valor capturado
  • Las aserciones validan la respuesta del perfil

El rext.env.json correspondiente:

{
"Development": {
"email": "dev@example.com",
"password": "dev-password"
},
"Production": {
"email": "admin@example.com",
"password": "prod-password"
}
}
CaracterísticaDirectivas Usadas
Configuración global@config con baseUrl, headers, assert
Organización@collection Auth, @name, @id
Flujo de autenticación@pre a1b2c3
Captura de respuesta@capture env.token = body.access_token
ValidaciónMúltiples directivas @assert
Variables de entorno{{email}}, {{password}}, {{token}}
  • Regresa a la Introducción
  • Explora las características individuales a fondo a través del sidebar