Robot Framework listener para integração em tempo real com QA Manager
Project description
cm-qa-integration
Integração em tempo real entre o Robot Framework e a plataforma QA Manager via API REST.
Um listener Robot Framework v3 captura cada resultado de teste no momento em que ocorre e o envia automaticamente para o QA Manager — sem necessidade de alterar os arquivos .robot existentes.
Como funciona
Robot Framework
└─ start_suite ──► POST /integration/test-runs (cria o Test Run, recebe integration_token)
└─ end_test ──► POST /integration/test-runs/{id}/results (envia resultado de cada teste)
└─ end_suite ──► POST /integration/test-runs/{id}/complete (marca a execução como concluída)
Dois tokens são usados:
- API Token (
qm_...) — gerado no perfil do usuário no QA Manager, usado para criar o Test Run - Integration Token (retornado pela API) — usado para todos os envios de resultados subsequentes
Instalação
pip install cm-qa-integration
Para desenvolvimento local:
git clone <url-do-repo> cm-qa-integration
cd cm-qa-integration
pip install -e .
Quick Start
1. Configurar
cm-qa-integration setup
O comando interativo solicita:
- URL da API do QA Manager
- API Token (gerado em Meu Perfil → API Tokens)
- Código do projeto
E salva em .qamanager.json.
2. Executar testes
robot --listener cm_qa_integration.listener tests/
Os resultados são enviados automaticamente para o QA Manager em tempo real.
3. Verificar configuração
cm-qa-integration check
Configuração (.qamanager.json)
{
"api_url": "http://localhost:3001/api",
"token": "qm_abc123...",
"project_code": "ROQ",
"default_type": "AUTOMATED"
}
Hierarquia de prioridade
A configuração é carregada de múltiplas fontes (a mais alta vence):
- Variáveis de ambiente (
QA_MANAGER_*) .qamanager.jsonno diretório do projeto (local)~/.qamanager.jsonno home (global)
Variáveis de ambiente
| Variável | Descrição |
|---|---|
QA_MANAGER_TOKEN |
API Token (alternativa ao .qamanager.json) |
QA_MANAGER_URL |
URL base da API (padrão: http://localhost:3001/api) |
QA_MANAGER_PROJECT_CODE |
Código de integração do projeto |
Uso do Listener
# Com .qamanager.json configurado (recomendado):
robot --listener cm_qa_integration.listener tests/
# Especificando sprint via argumento:
robot --listener cm_qa_integration.listener:SPRINT_ID tests/
# Modo legado (project + sprint como argumentos):
robot --listener cm_qa_integration.listener:PROJECT_CODE:SPRINT_ID tests/
Comandos CLI
| Comando | Descrição |
|---|---|
cm-qa-integration setup |
Configuração interativa — gera .qamanager.json |
cm-qa-integration check |
Valida configuração e testa conectividade |
Uso programático
from cm_qa_integration import QAManagerListener, QAManagerClient, load_config
config = load_config()
client = QAManagerClient(config["api_url"], config["token"])
ok, msg = client.check_connection()
Pré-requisitos
- Python 3.10+
- Robot Framework 7.x
- Acesso à API do QA Manager
Licença
MIT
Project details
Release history Release notifications | RSS feed
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 cm_qa_integration-1.0.0.tar.gz.
File metadata
- Download URL: cm_qa_integration-1.0.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b68b7d1bca9c570b555f12b12b20324c2a81cf8dc7119b06ef53137a99d3ac7
|
|
| MD5 |
62c2cfbe28b4e575a374e3e9f762ec60
|
|
| BLAKE2b-256 |
9ce214a295a5e14c76b2ce4a3bfad95fe53daa9c61798f10ec3bddd170857dfe
|
File details
Details for the file cm_qa_integration-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cm_qa_integration-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e84604a875b042873f3919572ee073c981f2d86340623345193f59671925871
|
|
| MD5 |
50dd67a910874ce5209c2b62e9e2d759
|
|
| BLAKE2b-256 |
3fbff99d27e8f872502672e7e234023404a0d655e1e2940aabe8ea4508d99afb
|