Nesse diretório estão contidos os testes de API, de carga e de integração da API e do website (frontend)
Para rodar os testes, é necessário ter instalado na máquina:
- Node.js (versão 18+)
- npm (já vem instalado com Node.js)
- Bruno API Client (alt: Bruno CLI)
- Artillery
npm install -g @usebruno/cli npm install -g artillery@latestOs scripts para a API local estão configurados para o servidor rodando na porta 3000. É possível modificar isso rodando o seguinte script:
node swap_local_host_port.js {n° porta}Além disso, os testes de carga usam o arquivo users.csv. Esse arquivo pode ser gerado rodando o seguinte script:
node csv_generator.jsNo cliente do Bruno, é possível visualizar os testes para a API, bem como um esboço de documentação para cada endpoint. Os scripts estão separado em codeleap_api (testa a API disponibilizada pela Codeleap em https://dev.codeleap.co.uk/careers) e local_api (os mesmos scripts)
Para visualizar no client, vá em Collections > Open Collection e selecione o diretório bru
Fornece scripts úteis para outros testes. Essencialmente, fornece um script para limpar a database local e outro para limpar a database remota
bru run ""./utils/Clean Local Database.bru"bru run ""./utils/Clean Database.bru"Os scripts aqui chamam os endpoints em sequência de forma a não quebrar. Executá-los fora de ordem vai fazer os testes falharem. É apenas um teste de integração do "caminho feliz"
Para executar, clique com o botão direito na pasta dentro do Bruno API Client e escolha run. Alternativamente:
bru run ./codeleap_api/happy_path_no_fakesOs scripts aqui chamam os endpoints com valores inválidos ou vazios.
Para executar, clique com o botão direito na pasta dentro do Bruno API Client e escolha run. Alternativamente:
bru run ./codeleap_api/invalid_dataOs scripts aqui fazem o mesmo que os scripts que testam a API remota, só que numa API rodando num servidor local
Os scripts aqui chamam os endpoints em sequência de forma a não quebrar. Executá-los fora de ordem vai fazer os testes falharem. É apenas um teste de integração do "caminho feliz" usando dados fake.
Para executar, clique com o botão direito na pasta dentro do Bruno API Client e escolha run. Alternativamente:
bru run ./local_api/happy_path_no_fakesOs scripts aqui chamam os endpoints com valores inválidos ou vazios.
Para executar, clique com o botão direito na pasta dentro do Bruno API Client e escolha run. Alternativamente:
bru run ./local/invalid_dataTeste de carga simples. Na API faz uma série de posts (o payload vem de um csv gerado com dados fake pelo faker) e um get após cada post. Nas aplicação chama as páginas index e feed.
Os testes não fazem sentido num ambiente real..
artillery run artillery_local_api.ymlRodar o seguinte script após esse teste apaga os posts:
bru run ""./utils/Clean Local Database.bru"Caution
Esse script vai inserir muitos dados na base de dados.
artillery run artillery_remote_api.ymlCertifique-se de rodar o seguinte comando após esse teste para apagar os posts:
bru run "./utils/Clean Database.bru"artillery run artillery_front_webpages.ymlPara facilitar a execução, os testes estão junto ao projeto testado no outro arquivo zip. Para executar:
yarn
yarn testOptei por fazer testes de unidade no componente Button e testar se a página index atendia aos requisitos. Em relação ao projeto original apenas arquivos de configuração e teste foram modificados, o projeto continua funcionando da mesma forma e sem alteração no código original
Fornece um arquivo .csv com o payload para os testes de carga. Já está tudo configurado, é só rodar
node csv_generator.jsSumário de bugs e comportamentos fora do padrão encontrados durante os testes. Disponível aqui
- Bruno API Client e CLI
- Artillery
- Faker.js
- Jest
- React Testing Library
- Git
- Node.js
- Yarn
- Expo Go
- Markdown
- Visual Studio Code
- Manjaro
- WSL2 (Ubuntu Distro)
- Windows 11
- Android Studio
- JavaScript
- TypeScript
- zsh
As versões, quando necessárias, estão disponíveis nos arquivos package.json e package-json.lock
Projeto sob licença MIT.