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
.featureserão gerados. - STEPS_DIR: Diretório onde os arquivos
_steps.pyserã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:
- Criação de Diretórios: Verifica e cria os diretórios necessários para armazenar os arquivos gerados.
- Leitura da Coleção: Lê o arquivo JSON da coleção Postman fornecido pelo usuário.
- 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.
- Arquivos
- Verificação de Duplicações: Arquivos duplicados são movidos para os arquivos de utilitários correspondentes (
utils_feature.feature,utils_steps.pyeutils_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
- Digite o caminho da collection Postman:
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file postman_collection_test_generator-0.1.3.tar.gz.
File metadata
- Download URL: postman_collection_test_generator-0.1.3.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
967dddff9f617ae6900c174bc79d1548f3f2f296fb0b4e4e61ced6df43bdf23f
|
|
| MD5 |
43da2d2c73f59aa5e3f2227bb5219313
|
|
| BLAKE2b-256 |
fbbe3bea11b1212de52101869c9565a8aa64ed30c4a9612ec13102ea7f82293c
|
File details
Details for the file postman_collection_test_generator-0.1.3-py3-none-any.whl.
File metadata
- Download URL: postman_collection_test_generator-0.1.3-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4fbc20ad3751296ebb1f6b130f7e4b02faac318b8f0e32c960d0f082d80b5b6
|
|
| MD5 |
5547561eb93b3c47c9181118bf7d8b00
|
|
| BLAKE2b-256 |
5ac18428a37dd6815b378f3e1bf0a64012ead02744ca0c5372442cc42da31d65
|