{"id":16112866,"url":"https://github.com/jonathanmdr/loadtest","last_synced_at":"2025-10-18T22:35:32.661Z","repository":{"id":99788252,"uuid":"401427821","full_name":"jonathanmdr/LoadTest","owner":"jonathanmdr","description":"Testes de carga com K6, InfluxDB e Grafana.","archived":false,"fork":false,"pushed_at":"2022-05-04T18:01:04.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T12:55:34.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonathanmdr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-08-30T17:22:02.000Z","updated_at":"2022-01-22T23:20:08.000Z","dependencies_parsed_at":"2023-08-01T02:15:47.124Z","dependency_job_id":null,"html_url":"https://github.com/jonathanmdr/LoadTest","commit_stats":{"total_commits":5,"total_committers":3,"mean_commits":"1.6666666666666667","dds":0.6,"last_synced_commit":"3e72f0d86f14c643ce463e118b576400796f3b9a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2FLoadTest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2FLoadTest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2FLoadTest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanmdr%2FLoadTest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanmdr","download_url":"https://codeload.github.com/jonathanmdr/LoadTest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247446704,"owners_count":20940163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-09T20:09:29.134Z","updated_at":"2025-10-18T22:35:32.583Z","avatar_url":"https://github.com/jonathanmdr.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Load Test\n\nEstrutura para realização de testes de carga utilizando `k6`, `influxdb` e `grafana`.\n\n### Funcionamento:\nO `k6` permite que montemos diversos cenários para realização de testes de carga para vermos como um determinado serviço se comporta ao receber diversas requisições.\n\nTodos os dados gerados pelo `k6` são entregues em uma base de dados de série temporal, no nosso caso o `influxdb`.\n\nO `grafana` lê todos os dados dispostos no `influxdb` e exibe os resultados em um dashboard.\n\n### Dashboards Grafana:\nO dashboard utilizado para exibir os resultados dos testes de carga do `k6` pode ser encontrado aqui: https://grafana.com/grafana/dashboards/2587\n\n### Configuração:\n\nOs cenários de teste são disponibilizados no diretório `/scripts`, onde cada script representa um cenário único de teste.\n\nOs cenários são desenvolvidos utilizando arquivos `.js`.\n\nPara maiores informações, visite a documentação oficial do `k6` disponível em: https://k6.io/docs/\n\n\u003e :warning: É necessário ter o `docker` e `docker-compose` devidamente instalados e configurados.\n\n#### Estrutura base de um script:\n\n```js\nimport http from 'k6/http';\n\nimport env from './config/env.js';\n\nexport let options = {\n  // Configuring tresholds\n};\n\nexport default function () {\n  // Scenario code\n}\n```\n\n\u003e :warning: O arquivo `env.js` é de uso exclusivo para variáveis de ambiente compartilhadas entre os diversos cenários.\n\nPara simplificar a criação do ambiente e execução dos cenários de teste, foram criados dois scripts shell, sendo o `setup` responsável por prover o ambiente com o `influxdb` e `grafana`, e o `run-load-test` por executar os cenários baseado no nome do mesmo.\n\n\u003e :warning: Os scripts shell devem ser executados à partir da pasta `/utils`, sendo necessário acessá-la antes de realizar a execução, o uso de qualquer outra forma pode apresentar problemas de execução pela forma como os scripts foram construídos.\n\n#### Configurando o ambiente:\n_O parâmetro `up` faz com que os containeres sejam inicializados, e o parâmetro `down` faz com que os mesmos sejam finalizados._ \n\n```sh\n~$ cd utils\n~$ ./setup up\n~$ ./setup down\n```\n\n#### Executando um cenário de teste:\n_O parâmetro de entrada é o nome de um arquivo de cenário de teste._\n\n```sh\n~$ cd utils\n~$ ./run-load-test get-token\n~$ ./run-load-test health-check\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanmdr%2Floadtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanmdr%2Floadtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanmdr%2Floadtest/lists"}