Recientemente comencé a escribir pruebas de prueba de carga usando la herramienta de artillería. Solía escribir pruebas para K6, así que hablaré sobre las ventajas de la artillería sobre K6 y también escribiré un guión paso a paso para configurar un proyecto desde cero.
Paso 1. Instalación
npm install -g artillery@latest
Dado que no solo necesitamos rastrear las métricas, sino también asegurarnos de que el servidor envía la respuesta correcta, también instalamos un complemento para comparar el resultado esperado con el recibido:
npm i artillery-plugin-expect
Paso 2. Crear configuración
URL de destino, entorno
El archivo de configuración de prueba de carga es todo lo que necesitamos hacer para ejecutar las pruebas:
config:
target: "https://yourapp.com/api"
environment , target url:
config:
target: "https://bestapp.com/api"
environments:
dev:
target: "https://bestapp.dev.com/api"
qa:
target: "https://bestapp.qa.com/api"
artillery . : duration – ; arrivalRate – , ; ramptTo – ; name - .
phases:
- duration: 30
arrivalRate: 1
rampTo: 20
name: test1
target url, , environment, .
:
plugins:
expect: {}
username password:
- get:
url: "/auth"
auth:
user: username
pass: password
header:
- post:
url: "/auth"
headers:
Authorization: “Basic secretKey”
3.
scenarios. , (GET, POST, PUT, DELETE .), url endpoint, body json, .
:
scenarios:
- name: "My first test"
flow:
- post:
url: "/endpoint1"
json:
id: value
expect:
- statusCode: 200
- contentType: json
- equals:
- respMessage: "OK"
equals , .
4.
:
artillery run yourConfig.yml
scripts package.json .
-e <env> - environment,
--quiet – ,
-o result.json – .
html
:
artillery report result.json
K6
La principal ventaja de la artillería es la muy fácil configuración de la primera prueba de funcionamiento. No es necesario volver a escribir las pruebas en el formato definido para K6, no es necesario escribir un archivo bat para ejecutar varias pruebas y guardar los resultados en una carpeta separada. Basta con configurar un archivo.
Artillery trabaja con node.js, por lo que la secuencia de comandos de inicio se puede insertar en package.json.
Puede importar variables de un archivo cvs, tomar variables del resultado.
El informe con gráficos y tablas se agrega en un comando y se incluye en la versión gratuita de artillería.