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

  • Instale o pacote:
    pip install postman-collection-test-generator
    
  • A estrutura esperada para seu projeto de ser:
    test/
    ├── features/
       ├── specs/ # Arquivos de recursos Gherkin
       ├── steps/ # Definições de etapas
       └── services/ # Classes de serviço
    
  • Execute o comando:
    bdd-generator
    
  • Ao executar o comando, será solicitado que 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.3.tar.gz (5.7 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.3.tar.gz.

File metadata

File hashes

Hashes for postman_collection_test_generator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 967dddff9f617ae6900c174bc79d1548f3f2f296fb0b4e4e61ced6df43bdf23f
MD5 43da2d2c73f59aa5e3f2227bb5219313
BLAKE2b-256 fbbe3bea11b1212de52101869c9565a8aa64ed30c4a9612ec13102ea7f82293c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for postman_collection_test_generator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d4fbc20ad3751296ebb1f6b130f7e4b02faac318b8f0e32c960d0f082d80b5b6
MD5 5547561eb93b3c47c9181118bf7d8b00
BLAKE2b-256 5ac18428a37dd6815b378f3e1bf0a64012ead02744ca0c5372442cc42da31d65

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