@frete.com/architecture-test-api
v2.0.0
Published
CLI para construção de projetos de testes automatizados de API baseados em uma arquitetura de referência definida pelo de time de Qualidade da Frete.com
Downloads
8
Readme
CLI Architecture API
Proposta de estrutura, padronização e configuração arquitetural para desenvolvimento de projetos de testes automatizados de API.
Detalhamento da arquitetura
Tecnologias
- allure-mocha: Integração com ferramenta de gerenciamento de casos de testes Allure TestOps.
- chai: Asserção de testes em formato de BDD / TDD.
- dotenv: Gerenciamento de variáveis de ambiente.
- eslint: Verificador de padrões de escrita da linguagem JavaScript.
- faker-js/:faker: Geração de dados fake ("falsos" mas em padrões válidos).
- joi: Validação de schema de dados.
- mocha: Estrutura para escrita de testes (ex.: describe, it) e runner da automação.
- mochawesome: Gerador de relatórios para automações em estruturas Mocha.
- mongodb: Conexão e execução de operações em bancos não-relacionais MongoDB.
- mysql2: Conexão e execução de operações em bancos relacionais MySQL.
- prettier: Formatador de código opinativo
- supertest: Abstração de alto nível para realizar testes HTTP.
Diretórios
- 📂 nome-serviço-api-test/:
- 📂 core/: Contém o centro da automação de testes de API, ou seja, as rotas que serão testadas e os testes em si.
- 📂 routes/: Contém as estruturas para chamada das rotas a serem testadas.
- 📂 tests/: Contém as suítes/:cenários de testes por rotas.
- 📂 support/: Contém o apoio necessário e complementar para execução de um teste, como massa de dados, funções de suporte para preparação do ambiente de teste, geração de relatórios...
- 📂 data/: Contém os requests e responses bodies a serem utilizados na chamada da API e validação do retorno dos testes.
- 📂 request/: Contém as estruturas de requests bodies.
- 📂 response/: Contém as estruturas de responses bodies.
- 📂 schema/: Contém os schemas dos responses bodies com retornos de dados dinâmicos.
- 📂 database/: Contém as estruturas de conexão, operações e queries de banco de dados
- 📂 mongodb/: [SOMENTE EM PROJETOS QUE FAZEM CONEXÃO COM O MONGODB]
- 📄 connection.js: Funções referentes a abertura e fechamento de conexão com banco de dados não relacional MongoDB.
- 📄 operations.js: Funções com operações de documentos MongoDB.
- 📄 queries.js: Função com construção de queries do MongoDB.
- 📂 mysql/: [SOMENTE EM PROJETOS QUE FAZEM CONEXÃO COM O MYSQL]
- 📄 connection.js: Funções referentes a abertura e fechamento de conexão com banco de dados relacional MySQL.
- 📄 queries.js: Função com construção de queries do MySQL.
- 📂 mongodb/: [SOMENTE EM PROJETOS QUE FAZEM CONEXÃO COM O MONGODB]
- 📂 env/: Contém estruturas referentes ao gerenciamento de variáveis de ambiente da aplicação.
- 📄 config-environment.js: Funções referentes a validação e definição de uso de envs.
- 📂 helpers/: Contém pré e pós condições das estrutura de execução dos testes.
- 📄 allure-authors.js: Lista de nome de QAs passíveis a serem autores de um conjunto de testes.
- 📄 commons.js: Ações de negócio em comum a serem realizada antes/:pós a execução de mais de um teste.
- 📄 config.js: Estruturas de dados a serem utilizadas como configurações fixas nos testes.
- 📄 report.js: Ações atreladas a geração de report de execução de teste.
- 📄 utils: Possui funções utilitárias que auxiliam na construção e execução dos testes.
- 📂 data/: Contém os requests e responses bodies a serem utilizados na chamada da API e validação do retorno dos testes.
- 📄 .env: Contém as variáveis de ambiente.
- 📄 .env.example: Contém o modelo de declaração das variáveis de ambiente.
- 📄 .eslintignore: Contém a definição de pastas e arquivos que devem ter a verificação do eslint ignorada.
- 📄 .eslintrc: Contém as definições de configuração do eslint.
- 📄 .gitignore: Contém a definição de pastas e arquivos que não devem subir para o repositório do projeto no gitlab.
- 📄 .gitlab-ci.yml: Contém as definições e configurações da pipeline CI/:CD do gitlab.
- 📄 .mocharc.json: Contém as definições de configuração do mocha.
- 📄 .npmrc: Contém as definições de configuração do npm.
- 📄 .README.md: Contém a apresentação e informações sobre o projeto.
- 📄 .package.json: Contém as definições do projeto de automação.
- 📄 .prettier.config.cjs: Contém as definições de configuração do prettier.
- 📂 core/: Contém o centro da automação de testes de API, ou seja, as rotas que serão testadas e os testes em si.
Instalação
Pré-requisitos
- Node
- NPM
Instalar
npm i -g @frete.com/architecture-test-api
Comandos
🗣️ Para uma maior detalhamento dos fluxos de execução de cada um dos comandos abaixo acesse o diagrama
Criar projeto
Para construir um novo projeto baseado na arquitetura proposta execute o seguinte comando no terminal e responda as perguntas para criar a arquitetura baseada nas necessidades do projeto.
architecture-test-api create
Adicionar estrutura de integração com banco de dados relacional (MySQL)
Para adicionar somente a estrutura de integração com um banco de dados relacional (MySQL) em um projeto existente.
architecture-test-api mysql
Adicionar estrutura de integração com banco de dados não-relacional (MongoDB)
Para adicionar somente a estrutura de integração com um banco de dados não-relacional (MongoDB) em um projeto existente.
architecture-test-api mongodb
Adicionar estrutura de integração com ferramenta de gerenciamento de casos de testes (Allure TestOps)
Para adicionar somente a estrutura de integração com a ferramenta de gerenciamento de casos de testes (Allure TestOps) em um projeto existente.
architecture-test-api allure-testops
Adicionar estrutura de integração com ferramenta de comunicação (Slack)
Para adicionar somente a estrutura de integração com a ferramenta de comunicação (Slack) em um projeto existente.
architecture-test-api slack
Changelog
Consulte o CHANGELOG para obter mais informações sobre o histórico de alterações do projeto.