Skip to content

Instantly share code, notes, and snippets.

@joaovictorino
Last active October 6, 2023 01:49
Show Gist options
  • Save joaovictorino/7ab933a49b2d27c5a2eeed80a631407c to your computer and use it in GitHub Desktop.
Save joaovictorino/7ab933a49b2d27c5a2eeed80a631407c to your computer and use it in GitHub Desktop.
Testando a transferência por API

Testando a transferência por API

Vamos testar a API de transferência de valores.
Crie na pasta "k6" o arquivo "TransferenciaAPI.js" com o código abaixo

import http from 'k6/http';
import { check, sleep } from 'k6';
import { htmlReport } from "https://raw.githubusercontent.com/benc-uk/k6-reporter/main/dist/bundle.js";
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";

export const options = {
  stages: [
    { duration: '30s', target: 20 }
  ],
};

export default function () {
  const payload = JSON.stringify({
    origem: '654321',
    destino: '123456',
    valor: 1
  });

  const params = {
    headers: {
      'Content-Type': 'application/json',
    },
  };

  const res = http.post(`http://${__ENV.HOST_URL}/api/contas/transferir`, payload, params);
  check(res, { 
    'status 200': (r) => r.status == 200,
    'recibo gerado': (r) => r.body.includes('recibo')
  });
  sleep(1);
}

export function handleSummary(data) {
  return {
    "summary.html": htmlReport(data),
    stdout: textSummary(data, { indent: " ", enableColors: true })
  };
}

Agora execute o k6 com o comando abaixo

k6 run -e HOST_URL=localhost:3000 TransferenciaAPI.js

Nesta execução estamos fazendo um POST para a API de transferência, avaliando o status HTTP e o retorno da rota, buscando pelo recibo dentro da mensagem, além de usar variáveis de ambiente para parametrizar o host da nossa aplicação.
Aguarde a execução terminar e acesse o relatório de execução.
É possível consultar se as operações de transferências foram feitas, basta acessar o endereço http://localhost:3000/api/contas/654321 e verificar o saldo da conta.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment