{"id":18409678,"url":"https://github.com/urnauzao/vegeta-http-stress-test","last_synced_at":"2026-01-23T02:38:11.059Z","repository":{"id":194667426,"uuid":"691325500","full_name":"urnauzao/vegeta-http-stress-test","owner":"urnauzao","description":"Test multiples Http request to endpoints. Too called stress test.","archived":false,"fork":false,"pushed_at":"2023-09-15T02:21:35.000Z","size":4585,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T22:10:01.353Z","etag":null,"topics":["http-test","http-testing","http-testing-server","stress-ip","stress-testing","vegeta"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/urnauzao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-14T00:36:43.000Z","updated_at":"2024-03-04T15:46:11.000Z","dependencies_parsed_at":"2024-11-06T03:41:03.149Z","dependency_job_id":null,"html_url":"https://github.com/urnauzao/vegeta-http-stress-test","commit_stats":null,"previous_names":["urnauzao/vegeta-http-stress-test"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/urnauzao/vegeta-http-stress-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urnauzao%2Fvegeta-http-stress-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urnauzao%2Fvegeta-http-stress-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urnauzao%2Fvegeta-http-stress-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urnauzao%2Fvegeta-http-stress-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urnauzao","download_url":"https://codeload.github.com/urnauzao/vegeta-http-stress-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urnauzao%2Fvegeta-http-stress-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28679137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"online","status_checked_at":"2026-01-23T02:00:08.296Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http-test","http-testing","http-testing-server","stress-ip","stress-testing","vegeta"],"created_at":"2024-11-06T03:26:35.331Z","updated_at":"2026-01-23T02:38:11.036Z","avatar_url":"https://github.com/urnauzao.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"- Documentação da ferramenta Vegeta\nhttps://github.com/tsenart/vegeta\n\n- Selecione seu Binários:\nhttps://github.com/tsenart/vegeta/releases\n\n- Vídeo Tutorial\n[https://youtu.be/FNj0e1ZT4fI](https://youtu.be/FNj0e1ZT4fI)\n\n- Clonando o binário\n\u003e curl -LO https://github.com/tsenart/vegeta/releases/download/v12.11.0/vegeta_12.11.0_linux_386.tar.gz\n\n- Extraindo o binário\n\u003e tar -zxvf vegeta_12.11.0_linux_386.tar.gz\n\n- Movendo o binário para pasta do sistema\n\u003e sudo mv ./vegeta /usr/bin/vegeta\n\n- Testando o Vegeta\n\u003e vegeta --help\n\n- Via terminal\n\u003e echo \"GET https://nginx.urnau.com.br\" | vegeta attack -rate=10 -duration=30s | vegeta report\n\n- Via atack.list\n\u003e vegeta attack -duration=5s -rate=5 -targets=atack.list | vegeta report\n\n- Customizar saida\n\u003e vegeta attack -duration=30s -rate=100 -targets=atack.list | vegeta encode | jq -c 'del(.body,.headers)' | vegeta encode \u003e results.json\n\n- Gerar gráfico da saída\n\u003e vegeta plot -title='Teste de Ataque' results.json \u003e results.html\n\n- Outros comandos\n\u003e vegeta attack -duration=30s -rate=1000 -name='Second' -tar\n\u003e gets=atack.list | vegeta encode | jq -c 'del(.body,.headers)'\n\u003e | vegeta encode \u003e results2.json\n\u003e ###\n\u003e vegeta plot -title='Teste de Ataque' results.json results2.json \u003e results2.html\n\n\u003e ###\n\u003e echo \"GET https://nginx.urnau.com.br\"| vegeta attack -duration=20s -rate=5000 -name=\"5k\" | vegeta report -type=json\n```json\n{\"latencies\":{\"total\":56333143851600,\"mean\":563331438,\"50th\":60648,\"90th\":1412939033,\"95th\":1833621254,\"99th\":4292365164,\"max\":5075331800,\"min\":18900},\"bytes_in\":{\"total\":41545340,\"mean\":415.4534},\"bytes_out\":{\"total\":0,\"mean\":0},\"earliest\":\"2023-09-14T23:53:50.4863227Z\",\"latest\":\"2023-09-14T23:54:10.4866898Z\",\"end\":\"2023-09-14T23:54:12.6219268Z\",\"duration\":20000367100,\"wait\":2135237000,\"requests\":100000,\"rate\":4999.9082266845,\"throughput\":1858.2732061059949,\"success\":0.41134,\"status_codes\":{\"0\":58866,\"200\":41134},\"errors\":[\"Get \\\"https://nginx.urnau.com.br\\\": dial tcp 0.0.0.0:0-\\u003e191.101.1.112:443: socket: too many open files\"]}\n```\n\n# Cheque a quantidade de arquivos que podem estar abertos no seu sistema operacional\n- Isto pode causar HTTP Status Code 0\n\u003e ulimit -n\n\n\n# Instalar o JQ para edição do output\n\u003e sudo apt install jq\n\n\n# Relatório [report]:\n- Exemplo de retorno ao se utilizar a saída do tipo `report`\n\nExemplo: `echo \"GET https://nginx.urnau.com.br\" | vegeta attack -rate=10 -duration=30s | vegeta report`\n```txt\n    Requests      [total, rate, throughput]         25, 5.21, 2.62\n    Duration      [total, attack, wait]             4.971s, 4.8s, 171.63ms\n    Latencies     [min, mean, 50, 90, 95, 99, max]  169.844ms, 217.316ms, 170.789ms, 373.49ms, 559.211ms, 598.267ms, 598.267ms\n    Bytes In      [total, mean]                     14882, 595.28\n    Bytes Out     [total, mean]                     0, 0.00\n    Success       [ratio]                           52.00%\n    Status Codes  [code:count]                      200:13  404:12\n```\n\nO relatório gerado pelo Vegeta fornece informações sobre o resultado do teste de estresse que você executou. Vamos analisar cada seção do relatório:\n\n- Requests [total, rate, throughput]:\nTotal: O número total de solicitações feitas durante o teste, que é 25 no seu caso.\nRate: A taxa média de solicitações por segundo (RPS) durante o teste, que é 5.21.\nThroughput: A taxa média real de solicitações por segundo que foram efetivamente atendidas pelo servidor, que é 2.62. Isso indica quantas solicitações por segundo o servidor conseguiu processar com sucesso.\n\n- Duration [total, attack, wait]:\nTotal: A duração total do teste, que é 4.971 segundos.\nAttack: A duração durante a qual as solicitações foram efetivamente enviadas (o tempo em que o ataque aconteceu), que é 4.8 segundos.\nWait: A duração média que cada solicitação teve que esperar antes de ser atendida pelo servidor, que é 171.63 milissegundos (ms).\n\n- Latencies [min, mean, 50, 90, 95, 99, max]:\nMin: A latência mínima observada durante o teste, que é 169.844 ms.\nMean: A latência média de todas as solicitações, que é 217.316 ms.\n50: A mediana (percentil 50) das latências, que é 170.789 ms.\n90: O percentil 90 das latências, que é 373.649 ms.\n95: O percentil 95 das latências, que é 559.211 ms.\n99: O percentil 99 das latências, que é 598.267 ms.\nMax: A latência máxima observada durante o teste, que também é 598.267 ms. As latências indicam o tempo que as solicitações levaram para serem processadas pelo servidor.\n\n- Bytes In [total, mean]:\nTotal: O número total de bytes recebidos do servidor durante o teste, que é 14,882 bytes.\nMean: A média de bytes recebidos por solicitação, que é 595.28 bytes.\n\n- Bytes Out [total, mean]:\nTotal: O número total de bytes enviados para o servidor durante o teste, que é 0 bytes. Isso pode indicar que as solicitações não incluíram corpo (payload) de saída.\nMean: A média de bytes enviados por solicitação, que é 0 bytes.\n\n- Success [ratio]:\nRatio: A porcentagem de solicitações bem-sucedidas em relação ao total de solicitações, que é 52%. Isso significa que 52% das solicitações resultaram em uma resposta com código de status 200 (sucesso).\n\n- Status Codes [code:count]:\nAqui são apresentados os códigos de status das respostas recebidas durante o teste, juntamente com o número de ocorrências de cada código. No seu caso, 13 solicitações resultaram em um código de status 200 (sucesso) e 12 solicitações resultaram em um código de status 404 (não encontrado).\nEssas informações do relatório ajudam a entender como o servidor respondeu durante o teste de estresse, incluindo métricas de desempenho, latência, sucesso e códigos de status. Você pode usar essas informações para avaliar o desempenho do servidor sob carga e identificar possíveis problemas.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furnauzao%2Fvegeta-http-stress-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furnauzao%2Fvegeta-http-stress-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furnauzao%2Fvegeta-http-stress-test/lists"}