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.