Recentemente, comecei a escrever testes de teste de carga usando a ferramenta de artilharia. Eu costumava escrever testes para K6, então falarei sobre as vantagens da artilharia em relação ao K6, e também escreverei um script passo a passo para configurar um projeto do zero.
Etapa 1. Instalação
npm install -g artillery@latest
Como precisamos não apenas rastrear as métricas, mas também ter certeza de que o servidor envia a resposta correta, também instalamos um plugin para comparar o resultado esperado com o recebido:
npm i artillery-plugin-expect
Etapa 2. Criar configuração
URL de destino, ambiente
O arquivo de configuração do teste de carga é tudo o que precisamos fazer para executar os testes:
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
A principal vantagem da artilharia é a configuração muito fácil do primeiro teste de funcionamento. Não há necessidade de reescrever os testes no formato definido para K6, não há necessidade de gravar um arquivo bat para executar vários testes e salvar os resultados em uma pasta separada. Basta configurar um arquivo.
Artillery funciona com node.js, então o script de inicialização pode ser inserido em package.json.
Você pode importar variáveis de um arquivo cvs, pegar variáveis do resultado.
O relatório com gráficos e tabelas é adicionado em um comando e está incluído na versão gratuita da artilharia.