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.