https://github.com/devzgabriel/goexpert-project-stress-test
https://github.com/devzgabriel/goexpert-project-stress-test
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/devzgabriel/goexpert-project-stress-test
- Owner: devzgabriel
- Created: 2025-06-14T18:34:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-21T03:44:26.000Z (about 1 year ago)
- Last Synced: 2025-06-21T04:31:07.454Z (about 1 year ago)
- Language: Go
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## Projeto Stress Test GoExpert
#### Como executar o projeto
Para executar de maneira rápida, você pode utilizar o comando abaixo para buildar e executar o projeto via Docker. Certifique-se de ter o Docker instalado e configurado em sua máquina.
```bash
make docker-build
docker run stress-test --url=http://google.com --requests=1000 --concurrency=10
```
Para executar para um servidor local, você pode utilizar o comando abaixo:
```bash
make http-up
make test-local
make http-down
```
## Descrição
#### Objetivo: Criar um sistema CLI em Go para realizar testes de carga em um serviço web. O usuário deverá fornecer a URL do serviço, o número total de requests e a quantidade de chamadas simultâneas.
O sistema deverá gerar um relatório com informações específicas após a execução dos testes.
Entrada de Parâmetros via CLI:
`--url`: URL do serviço a ser testado.
`--requests`: Número total de requests.
`--concurrency`: Número de chamadas simultâneas.
#### Execução do Teste:
- Realizar requests HTTP para a URL especificada.
- Distribuir os requests de acordo com o nível de concorrência definido.
- Garantir que o número total de requests seja cumprido.
#### Geração de Relatório:
Apresentar um relatório ao final dos testes contendo:
- Tempo total gasto na execução
- Quantidade total de requests realizados.
- Quantidade de requests com status HTTP 200.
- Distribuição de outros códigos de status HTTP (como 404, 500, etc.).
#### Execução da aplicação:
Poderemos utilizar essa aplicação fazendo uma chamada via docker. Ex:
docker run --url=http://google.com --requests=1000 --concurrency=10