Ferramentas para developers / Testing · 2022
pycamel
Uma framework baseada em pytest para testes automatizados de API
Publicado: · Atualizado:
- Função
- Desenvolvimento a solo da framework de automação de testes
- Stack
- Python, pytest, Pylint, Coverage, codecov
- Ano
- 2022
O pycamel é uma framework de automação focada em cobrir serviços de API com testes, integrando-se sem atritos com o pytest. Dá às equipas uma forma estruturada de escrever testes de API, especialmente útil em arquiteturas de microsserviços.
O desafio
Quando uma equipa trabalha com vários serviços e versões de API ao mesmo tempo, scripts de pytest dispersos e ad hoc tornam-se rapidamente um caos, sem estrutura comum nem componentes reutilizáveis.
A solução
- ▸CamelConfig — configuração com um URL base do serviço
- ▸RouterMaker — construção de rotas para diferentes endpoints de API
- ▸Testes parametrizados via pytest.mark.parametrize
- ▸Funções auxiliares de validação de respostas, incluindo assert_status_code
- ▸Suporte a filtros de pedidos e extensão fácil para arquiteturas multi-serviço
Como funciona
Um projeto declara o host base uma única vez com CamelConfig em tests/conftest.py. Depois, cada serviço recebe o seu próprio RouterMaker com um prefixo de caminho como /data-service/v1, e cada endpoint passa a ser um router reutilizável exposto como fixture do pytest. Os testes chamam router.get() ou post() e validam a resposta, pelo que o código de testes espelha a estrutura da própria API.
- ▸Cabeçalhos por omissão para cada router (Content-Type: application/json de origem), além de set_headers e append_header, que só se aplicam ao pedido seguinte
- ▸Parâmetros de consulta e filtros com set_filters() para paginação e pesquisa
- ▸Validação de respostas com esquemas pydantic v2
- ▸Router makers separados por versão da API (v1, v2) para serviços que evoluem em paralelo
Manutenção
O pycamel está publicado no PyPI desde 2022 e continua a ser mantido: a versão principal atual destina-se a Python 3.10+ e pydantic v2, os testes unitários correm no GitHub Actions e a cobertura é acompanhada no Codecov.
O resultado
A framework está orientada para a qualidade do código: Pylint para análise estática, além de Coverage e codecov para acompanhar a cobertura de testes.
Menções e fontes