8000 GitHub - shardqa/k6facil: K6 Fácil
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

shardqa/k6facil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K6Facil

K6Facil é um framework que simplifica a criação e execução de testes de performance usando k6. Ele permite que você defina seus testes de carga usando arquivos JSON simples, sem precisar escrever código JavaScript diretamente.

Pré-requisitos

  1. Node.js (versão 16 ou superior)
  2. K6 instalado no sistema

Instalando o K6

Linux (usando Homebrew):

brew install k6

Windows (usando Chocolatey):

choco install k6

Outras opções de instalação: Documentação oficial do K6

Instalação

  1. Clone o repositório:
git clone https://github.com/shardqa/k6facil.git
cd k6facil
  1. Instale as dependências:
npm install
  1. Faça o link do comando global:
npm link

Estrutura do Projeto

k6facil/
├── bin/
├── src/
│   ├── configs/
│   ├── lib/
│   ├── scripts/
│   └── tests/
│       ├── examples/     # Exemplos de testes para referência
│       └── user-tests/   # Testes do usuário (ignorado pelo git)
├── .gitignore
├── package.json
└── README.md

Uso

  1. Crie seu arquivo JSON de teste na pasta src/tests/user-tests/. Exemplo (src/tests/user-tests/teste.json):
{
  "endpoint": {
    "url": "https://api.exemplo.com/endpoint",
    "method": "GET",
    "headers": {
      "Content-Type": "application/json",
      "Accept": "*/*"
    }
  },
  "loadTest": {
    "startVUs": 1,
    "maxVUs": 5,
    "stages": [
      { "duration": "30s", "target": 5 }
    ],
    "thresholds": {
      "http_req_duration": ["p(95)<500"],
      "http_req_failed": ["rate<0.01"]
    }
  }
}
  1. Execute o teste usando o caminho completo:
k6facil src/tests/user-tests/teste.json

Nota: A pasta src/tests/user-tests/ está no .gitignore para evitar que tokens e credenciais sejam acidentalmente commitados.

Configuração do JSON

Estrutura Básica

  • endpoint: Configurações da API a ser testada

    • url: URL completa do endpoint
    • method: Método HTTP (GET, POST, PUT, DELETE)
    • headers: Headers da requisição
    • body: Corpo da requisição (para POST/PUT)
  • loadTest: Configurações do teste de carga

    • startVUs: Número inicial de usuários virtuais
    • maxVUs: Número máximo de usuários virtuais
    • stages: Configuração das etapas do teste
    • thresholds: Critérios de sucesso do teste

Exemplos de Configuração

GET sem autenticação:

{
  "endpoint": {
    "url": "https://api.exemplo.com/users",
    "method": "GET",
    "headers": {
      "Accept": "*/*"
    }
  },
  "loadTest": {
    "startVUs": 1,
    "maxVUs": 5,
    "stages": [
      { "duration": "30s", "target": 5 }
    ],
    "thresholds": {
      "http_req_duration": ["p(95)<500"]
    }
  }
}

POST com autenticação:

{
  "endpoint": {
    "url": "https://api.exemplo.com/users",
    "method": "POST",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer seu-token-aqui"
    },
    "body": {
      "name": "Usuario Teste",
      "email": "usuario@teste.com"
    }
  },
  "loadTest": {
    "startVUs": 1,
    "maxVUs": 3,
    "stages": [
      { "duration": "1m", "target": 3 }
    ],
    "thresholds": {
      "http_req_duration": ["p(95)<500"],
      "http_req_failed": ["rate<0.01"]
    }
  }
}

Thresholds (Critérios de Sucesso)

Os thresholds definem os critérios de sucesso do seu teste:

  • http_req_duration: Tempo de resposta das requisições
    • Exemplo: "p(95)<500" - 95% das requisições devem responder em menos de 500ms
  • http_req_failed: Taxa de falha aceitável
    • Exemplo: "rate<0.01" - menos de 1% das requisições podem falhar

Interpretando os Resultados

Após a execução, o k6facil mostrará:

  • Estatísticas de execução
  • Status dos thresholds
  • Métricas de performance

O teste será considerado bem-sucedido se todos os thresholds forem atendidos.

Contribuindo

  1. Fork o projeto
  2. Crie sua Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a Branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

About

K6 Fácil

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0