Configuration des tests de charge avec Artillery.io

J'ai récemment commencé à écrire des tests de test de charge à l'aide de l'outil d'artillerie. J'avais l'habitude d'écrire des tests pour K6, donc je vais parler des avantages de l'artillerie par rapport à K6, et aussi écrire un script étape par étape pour mettre en place un projet à partir de zéro.





Étape 1. Installation

npm install -g artillery@latest
      
      



Puisque nous devons non seulement suivre les métriques, mais aussi nous assurer que le serveur envoie la bonne réponse, nous installons également un plugin pour comparer le résultat attendu avec celui reçu:





npm i artillery-plugin-expect
      
      



Étape 2. Créer une configuration

URL cible, environnement

Le fichier de configuration des tests de charge est tout ce dont nous avons besoin pour exécuter les tests:





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

Le principal avantage de l'artillerie est la configuration très simple du premier essai. Pas besoin de réécrire les tests au format défini pour K6, pas besoin d'écrire un fichier bat pour exécuter plusieurs tests et enregistrer les résultats dans un dossier séparé. Il suffit de configurer un fichier.





Artillery fonctionne avec node.js, donc le script de démarrage peut être inséré dans package.json.





Vous pouvez importer des variables à partir d'un fichier cvs, prendre des variables du résultat.





Le rapport avec des graphiques et des tableaux est ajouté en une seule commande et est inclus dans la version gratuite de l'artillerie.








All Articles