Skip to main content

Um gerador automático de testes BDD a partir de coleções Postman

Project description

Geração de Testes Automáticos a partir de Coleções Postman

Este script em Python automatiza a geração de testes a partir de coleções Postman. O objetivo é criar arquivos de teste estruturados em formato Gherkin .feature, arquivos de steps _steps.py e classes de serviço _service.py. Ele também trata duplicações e gera arquivos de utilitários para centralizar o código repetido.

Funcionalidades

1. Solicitação de Caminhos

O script solicita ao usuário os caminhos dos arquivos necessários:

  • Caminho da coleção Postman.
  • Caminho do projeto onde os testes serão gerados.

2. Diretórios de Destino

  • FEATURES_DIR: Diretório onde os arquivos .feature serão gerados.
  • STEPS_DIR: Diretório onde os arquivos _steps.py serão gerados.
  • SERVICES_DIR: Diretório onde os arquivos de serviço (_service.py) serão gerados.
  • UTILS_FEATURE: Arquivo centralizado para features duplicadas.
  • UTILS_STEPS: Arquivo centralizado para steps duplicados.
  • UTILS_SERVICE: Arquivo centralizado para serviços duplicados.

3. Funções principais

detect_duplicates(directory: str, utils_file: str, check_imports: bool = False) -> None

Detecta duplicações nos arquivos de um diretório e as move para um arquivo de utilitários, evitando que múltiplos arquivos com o mesmo conteúdo sejam gerados.

  • directory: Diretório onde os arquivos serão verificados.
  • utils_file: Arquivo onde os conteúdos duplicados serão centralizados.
  • check_imports: Verifica se há imports duplicados, caso o valor seja True.

ensure_directories() -> None

Cria os diretórios necessários para armazenar os arquivos gerados.

generate_gherkin_files(collection: Dict) -> None

Gera arquivos .feature para os endpoints presentes na coleção Postman. Cada endpoint gera um arquivo de funcionalidade em Gherkin.

generate_step_files(collection: Dict) -> None

Gera arquivos de steps (_steps.py) com as definições de cenários e ações a serem realizadas durante os testes. Cada arquivo de step importa a classe de serviço específica para o endpoint.

generate_service_classes(collection: Dict) -> None

Gera arquivos de classe de serviço (_service.py), que contêm a lógica para fazer as requisições para os endpoints definidos na coleção Postman.

process_items(items: List[Dict], callback: Callable[[Dict], None]) -> None

Processa cada item da coleção Postman, chamando a função callback para gerar os arquivos correspondentes (Gherkin, steps e serviço) para cada endpoint.

4. Fluxo do Script

O script segue a seguinte sequência de passos:

  1. Criação de Diretórios: Verifica e cria os diretórios necessários para armazenar os arquivos gerados.
  2. Leitura da Coleção: Lê o arquivo JSON da coleção Postman fornecido pelo usuário.
  3. Geração dos Arquivos de Teste:
    • Arquivos .feature: Gerados a partir dos endpoints.
    • Arquivos _steps.py: Gerados com as ações e validações para cada endpoint.
    • Arquivos _service.py: Gerados com a lógica para as requisições HTTP.
  4. Verificação de Duplicações: Arquivos duplicados são movidos para os arquivos de utilitários correspondentes (utils_feature.feature, utils_steps.py e utils_service.py).

5. Exemplo de Uso

  • Ao executar o script, será solicitado que o usuário forneça o caminho da coleção Postman e o caminho do projeto:
    • Digite o caminho da collection Postman:
      /caminho/para/collection.json
      
    • Digite o caminho do projeto onde os testes serão gerados:
      /caminho/do/projeto
      

Conclusão

  • A ideia deste script e facilitar a geração automatizada de testes a partir de coleções Postman, criando arquivos bem estruturados para facilitar a automação de testes de APIs.
  • Ele também evita duplicação de código, centralizando trechos reutilizáveis em arquivos de utilitários.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

postman_collection_test_generator-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file postman_collection_test_generator-0.1.0.tar.gz.

File metadata

File hashes

Hashes for postman_collection_test_generator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1b53cd5cdea5b4eb1b7d0388f9c1bb5cd1e8930941a2e9b76843e8c842e5df74
MD5 e91808d6a9aa5a64961be2391aff190e
BLAKE2b-256 91bf1726a851780da519ac602fab9e0fbc8a2217f13aaadee59720a0cdcb8188

See more details on using hashes here.

File details

Details for the file postman_collection_test_generator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for postman_collection_test_generator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 658e66d4324f5a4add71beb4d95818738375da07a509ca1c68282adf1c382a6b
MD5 bc3131855e91987777488c92533165ad
BLAKE2b-256 1dbf8657ac5b208a7abf06c70596b5852cebb01644f6921bc2dc1b60c64a7093

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page