Haciendo peticiones HTTP
Al crear una nueva prueba de carga, lo primero que se suele hacer es definir las peticiones HTTP que se utilizarán para probar el sistema. Un ejemplo sencillo que sólo realiza una petición de tipo GET es el siguiente:
Una solicitud algo más compleja podría ser por ejemplo, una solicitud POST para autenticarse en un sitio web o servicio:
Available methods
Utilice el módulo http para realizar todo tipo de peticiones HTTP en sus pruebas de carga.
Nombre | Descripción |
---|---|
batch() | Emitir múltiples peticiones HTTP en paralelo (como suelen hacer, por ejemplo, los navegadores). |
del() | Emitir una solicitud HTTP DELETE. |
get() | Emitir una solicitud HTTP GET. |
options() | Emitir una solicitud HTTP OPTIONS. |
patch() | Emitir una solicitud HTTP PATCH. |
post() | Emitir una solicitud HTTP POST. |
put() | Emitir una solicitud HTTP PUT. |
request() | Emitir una solicitud HTTP. |
Tags en las solicitudes HTTP
k6 aplicará automáticamente etiquetas (tags) a sus peticiones HTTP. Estas etiquetas le permiten filtrar sus resultados durante el análisis.
Nombre | Descripción |
---|---|
expected_response (≥ v0.31) | Por defecto, cuando el valor de response.status está entre 200 y 399, el valor es true. Cambia el compartamiento por defecto mediante setResponseCallback. |
group | Cuando una petición se ejecutan dentro de un group, el valor es el nombre del grupo. Por defecto está vacío. |
name | Por defecto será la URL solicitada |
method | Métodos de la solicitud (GET,POST,PUT, entre otros) |
scenario | Cuando una petición se ejecutan dentro de un scenario, el valor es el nombre del grupo. Por defecto está vacío. |
status | Estatus de la respuesta |
url | URL de la solicitud |
A continuación puede se ver cómo se registra un valor de la métrica HTTP (la duración de una solicitud HTTP), en formato JSON, incluyendo las diversas etiquetas mencionadas anteriormente:
Agrupamiento de las URLs
Por defecto, las peticiones informan el nombre de la etiqueta con el valor de la URL de la petición. Para las URLs que contienen partes dinámicas, esto puede no ser deseable ya que puede introducir un gran número de URLs únicas en el flujo de métricas. El siguiente código muestra una situación en la que se accede a 100 URLs diferentes pero se desea que todas ellas se reporten usando una sola métrica:
Puede agregar datos de URLs dinámicas estableciendo explícitamente una etiqueta de nombre:
Lo que produciría una salida JSON como la siguiente:
Observe cómo el name es el mismo para las dos muestras de datos relacionadas con dos URLs diferentes. Si filtramos los resultados por el nombre de la etiqueta (name: PostsItemURL), obtendremos un conjunto de resultados que incluye todos los puntos de datos de las 100 URL diferentes.
Además, también puede utilizar el “wrapper” http.url para establecer el nombre de la etiqueta con un valor determinado: