Configuración de pruebas de carga con Artillery.io

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.








All Articles