Exemplos de Pipeline
Disponível em: QANode Enterprise
Esta página traz exemplos prontos de integração com os provedores mais comuns.
GitHub Actions
Exemplo completo rodando uma suíte, aguardando o resultado e baixando o relatório PDF consolidado.
name: Run QANode Suite
on:
workflow_dispatch:
push:
branches: [main, master]
jobs:
qanode:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Run QANode suite
id: run_suite
run: |
set +e
RUN_JSON=$(npx @qanode/cli run suite \
--project-name "Backoffice" \
--suite-name "Regressão Login" \
--wait \
--timeout 300 \
--json)
EXIT_CODE=$?
set -e
echo "$RUN_JSON" > qanode-run.json
echo "run_id=$(echo "$RUN_JSON" | jq -r '.id')" >> "$GITHUB_OUTPUT"
exit $EXIT_CODE
env:
QANODE_URL: ${{ secrets.QANODE_URL }}
QANODE_TOKEN: ${{ secrets.QANODE_TOKEN }}
- name: Download QANode report
if: always()
run: |
npx @qanode/cli runs artifacts \
--run-id "${{ steps.run_suite.outputs.run_id }}" \
--out ./artifacts
env:
QANODE_URL: ${{ secrets.QANODE_URL }}
QANODE_TOKEN: ${{ secrets.QANODE_TOKEN }}
- name: Upload report
if: always()
uses: actions/upload-artifact@v4
with:
name: qanode-report
path: ./artifacts/
if-no-files-found: ignore
Por que capturar run_id desse jeito
O padrão acima evita um erro comum: disparar a suíte duas vezes.
O fluxo correto é:
- iniciar a run
- esperar a conclusão
- extrair o
idda mesma run retornada em JSON - baixar o relatório usando esse
id
Azure DevOps
Exemplo equivalente em Azure DevOps:
steps:
- task: NodeTool@0
inputs:
versionSpec: '20.x'
displayName: Setup Node.js
- script: |
set +e
RUN_JSON=$(npx @qanode/cli run suite \
--project-name "Backoffice" \
--suite-name "Regressão Login" \
--wait \
--timeout 300 \
--json)
EXIT_CODE=$?
set -e
echo "$RUN_JSON" > qanode-run.json
echo "##vso[task.setvariable variable=QANODE_RUN_ID]$(echo "$RUN_JSON" | jq -r '.id')"
exit $EXIT_CODE
displayName: Run QANode suite
env:
QANODE_URL: $(QANODE_URL)
QANODE_TOKEN: $(QANODE_TOKEN)
- script: |
npx @qanode/cli runs artifacts \
--run-id "$(QANODE_RUN_ID)" \
--out ./artifacts
displayName: Download QANode report
condition: always()
env:
QANODE_URL: $(QANODE_URL)
QANODE_TOKEN: $(QANODE_TOKEN)
Exemplo com override de variável
Use este padrão quando a aplicação sob teste é publicada dinamicamente durante o job:
npx @qanode/cli run suite \
--project-name "Task Manager" \
--suite-name "Suite Task Manager" \
--var base_url_ci=https://preview-da-build.exemplo.com \
--wait
Exemplo com override de credencial
Use quando o pipeline receber um segredo temporário:
npx @qanode/cli run scenario \
--project-name "Checkout" \
--scenario-name "Login API" \
--credential api-main.token=$API_TOKEN \
--wait
Relatório consolidado
O comando:
npx @qanode/cli runs artifacts --run-id RUN_ID --out ./artifacts
prioriza o relatório PDF consolidado da execução e salva o arquivo com nome único:
report_<runId>.pdf
Esse arquivo é o mais indicado para:
- anexar ao job
- auditar o resultado da execução
- enviar para outro sistema
Recomendações operacionais
- Salve
QANODE_URLeQANODE_TOKENem Secrets - Use
--waitquando quiser que o pipeline falhe automaticamente junto com a execução - Use
--jsonquando precisar capturar o ID da run ou armazenar dados adicionais - Use
--timeoutpara evitar jobs presos por tempo excessivo - Reutilize sempre o mesmo
run_idao baixar o relatório
