Configurando o teste de carga com Artillery.io

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.








All Articles