Executar testes no seu pipeline

O executor de linha de comando, os resultados que a sua ferramenta de CI lê, e exemplos prontos.

Um teste, qualquer pipeline

O gtr-cli, o executor de linha de comando, executa um teste exatamente como o botão Executar teste: as mesmas asserções, o mesmo relatório, o mesmo histórico.Ele acrescenta o que um pipeline precisa: um código de saída, arquivos de resultado que a ferramenta de CI entende, e todas as evidências de uma falha em uma única pasta.

Seu pipeline

e qualquer ferramenta que execute um comando

.github/workflows/gui-tests.yml
jobs:  gui-tests:    runs-on: [self-hosted, windows]    steps:      - run: gtr-cli run tests --format github --junit results.xml

Executando 12 testes na tela do agente de build...

PASSED 12 de 12 testes · código de saída 0

  • Código de saída0 quando todos os testes foram aprovados, 1 quando algum falhou: o build fica verde ou vermelho.
  • JUnit, JSON, MarkdownResultados que o seu pipeline mostra como resultados de teste, com cada etapa nomeada.
  • As evidências de cada falhaImagens esperadas e obtidas, a tela, o relatório e o vídeo em uma pasta.

Prepare a máquina de build

Um teste de interface gráfica é reproduzido em uma tela real, então a máquina que o executa precisa de uma.

Precisa dePor quê
Windows com o GUI Test Studio instaladoO instalador coloca o gtr-cli no PATH.
Uma sessão de área de trabalho conectada e desbloqueadaO teste clica e digita na tela real.Execute o agente de build como um programa normal nessa sessão, não como um serviço em segundo plano.
A resolução e a escala de tela dos testesOs elementos são comparados no tamanho em que foram gravados.
O aplicativo em testeInstalado, ou iniciado pelo próprio teste com uma etapa Executar aplicativo.
Uma licença do seu planoO agente entra uma vez, com uma chave de máquina da página da sua conta.

Crie a chave na página da sua conta, em Chaves de máquina, e depois execute isto uma vez no agente, com a conta do Windows que o pipeline usa:

Comando
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXX

gtr-cli whoami diz se o agente está conectado e até quando.Sem entrar, uma execução não começa: ela imprime uma linha que começa com COULD NOT RUN e termina com o código de saída 3.

Agentes de build: chaves de máquina

Seu primeiro comando

Em um terminal na máquina de build, execute todos os testes de uma pasta:

Comando
gtr-cli run tests --countdown 0 --junit results\junit.xml --artifacts results\artifacts

--countdown 0 começa na hora (não há ninguém diante da tela), --junit escreve o arquivo de resultados que a ferramenta de CI lê, e --artifacts reúne vídeos, relatórios e imagens das falhas em uma única pasta.

Esta máquina está pronta?Verifica todos os testes sem executá-los
gtr-cli check tests

O que o pipeline recebe de volta

Código de saídaSignificado
0Todos os testes foram aprovados.O build fica verde.
1Pelo menos um teste falhou.
2O comando estava errado: uma opção desconhecida, um arquivo ausente.
3Um teste não pôde ser executado, por exemplo porque a tela é diferente da gravação.
4Uma execução foi interrompida.
ArquivoPara
JUnit (--junit)A guia de resultados de teste do GitLab, Jenkins, Azure DevOps, TeamCity e GitHub
Resumo em Markdown (--summary)Um comentário de merge request ou a página de resumo do build
JSON (--json)Os seus próprios painéis e scripts
Pasta de artefatos (--artifacts)O vídeo, o Relatório de confiança e as imagens das falhas de cada teste
Relatórios de bug (--bug-report pdf)Um relatório de bug preenchido para cada teste reprovado

As execuções também vão para a pasta de resultados de cada teste, então o Histórico do GUI Test Runner-Recorder mostra as execuções do pipeline ao lado das suas.

Exemplos prontos

.github/workflows/gui-tests.yml
jobs:
  gui-tests:
    runs-on: [self-hosted, windows]
    steps:
      - uses: actions/checkout@v4
      - run: gtr-cli run tests --countdown 0 --format github --junit results\junit.xml --summary results\summary.md --artifacts results\artifacts
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: gui-test-results
          path: results

Monte um comando sem digitá-lo

Nos dois aplicativos, Linha de comando e CI/CD (no menu Arquivo do GUI Test Studio, no menu Teste do GUI Test Runner-Recorder) monta o comando para você: marque as opções desejadas, copie o resultado, ou copie o trecho pronto para a sua ferramenta de CI com os seus caminhos reais.A guia Referência explica cada opção.

Opções que você vai usar

OpçãoO que faz
--countdown 0Começa na hora.Em um terminal, a contagem regressiva padrão dá tempo para você soltar o mouse.
--retries 1Executa um teste reprovado mais uma vez antes de considerá-lo reprovado.
--fail-fastPara depois do primeiro teste reprovado.
--timeout 600Interrompe um teste que ainda esteja em execução depois de 10 minutos.
--baseline-profile "Dark mode"Executa com um dos seus perfis de linha de base.
--start-at 12.5Inicia o teste neste momento, em segundos.
--branch allPara um teste web feito para vários navegadores e dispositivos: executa todos, inclusive o teste gravado.Indique um ou vários em vez disso para executar só esses.
--headless onExecuta testes web sem janela do navegador sempre que o teste permitir.
--parallel offExecuta os navegadores e dispositivos de um teste um depois do outro, e não lado a lado.
--screen allEm uma máquina de build com vários monitores: executa em todos, no principal, no monitor de um número, na tela do terminal, ou onde o teste foi gravado.Por padrão, na tela indicada pelas Configurações do projeto do teste: a tela do terminal, a menos que elas indiquem outra.
--run-banner offOculta a fina faixa TEST RUNNING no alto da tela durante a execução.
--ai-verification onDeixa a IA dar o veredito final das asserções visuais e textuais reprovadas.O veredito do teste e o código de saída acompanham, e o que mudou é escrito no console e nos arquivos de resultado.
--ai-provider builtinUsa um modelo na própria máquina de build: nada a instalar, e um modelo que falta é baixado uma vez.
--ai-minor-differences failFaz reprovar uma asserção em que a IA só encontra diferenças pequenas.Por padrão, ela é aprovada.
--ai-wait 600O tempo máximo que um teste aguarda pelos vereditos da IA, em segundos.Por padrão, a ferramenta escolhe sozinha.
Todas as opções, explicadas
gtr-cli help

Reportar falhas no Jira

Um teste reprovado pode virar uma issue do Jira sozinho: as etapas para reproduzir, as imagens esperada e encontrada com o que mudou destacado, o relatório de bug em PDF e as evidências.O mesmo defeito visto de novo, em outro build, navegador ou dispositivo, adiciona um comentário à issue aberta em vez de criar uma segunda.

Comando
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression
OpçãoO que faz
--jira on-failureCria uma issue do Jira para cada teste reprovado.Um teste que não pôde ser executado nunca vira uma.
--jira-project SCRUMO projeto para onde as issues vão, pela chave dele.
--jira-issue-type BugO tipo de issue.Quando o projeto não tem nenhum com esse nome, o mais próximo é usado.
--jira-assignee "James"A quem a issue é atribuída: um e-mail ou um nome das pessoas do projeto.
--jira-labels a,bRótulos próprios, separados por vírgulas.
--jira-repeat newSempre uma nova issue, nunca um comentário na issue aberta.

A conexão vem do ambiente, então o token nunca aparece em uma linha de comando ou em um log de build: JIRA_BASE_URL (o seu site do Jira), JIRA_USER_EMAIL e JIRA_API_TOKEN.Na ferramenta de CI, guarde o token como um segredo ou um parâmetro de senha.Em um computador em que o GUI Test Runner-Recorder está conectado ao Jira, a conexão salva dele é usada no lugar.

O fluxo completo, com uma issue real e um build real: Conecte o Jira ao Relatório de confiança.

Aplicativos web em uma máquina de build

Um teste gravado em um aplicativo web abre o navegador sozinho, em modo quiosque de tela cheia, e o fecha no final.Em uma máquina de build, isso exige o tamanho de tela e a escala da gravação, uma área de trabalho conectada e desbloqueada, e uma execução que termine pelo próprio tempo limite.Abrir aplicativo web diz o que acontece caso contrário e o que fazer.

As mesmas notas estão na própria ferramenta:

Comando
gtr-cli help web-apps

Todos os navegadores e dispositivos, no pipeline

Um teste web feito para vários navegadores e dispositivos executa todos eles com --branch all, cada um com sua própria entrada no arquivo JUnit e seu próprio histórico.Celulares, tablets e as outras ramificações sem janela são executados lado a lado, então não precisam de uma tela própria.gtr-cli info lista o nome de cada um, e gtr-cli generate cria os que ainda faltam.Veja Todos os navegadores e dispositivos a partir de uma gravação.

Comando
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xml

Compartilhar testes sem a gravação

Um arquivo de teste contém a gravação, que você precisa para editar mas não para executar.Arquivo, Exportar como teste leve somente de execução (.GTR) no GUI Test Studio escreve o mesmo teste sem ela: um arquivo muito menor para uma máquina de build ou para um colega que só executa testes.O gtr-cli e o GUI Test Runner-Recorder executam arquivos .GTR como qualquer teste.

Teste (.GTS)Teste somente de execução (.GTR)
ContémAs etapas, as asserções e a referência visual: a gravação, imagens e designsSó as etapas e as asserções
Feito paraCriar e editar o testeExecutar o teste
TamanhoMaior: cresce com a gravaçãoMuito menor
Abre noGUI Test Studio e GUI Test Runner-RecorderGUI Test Runner-Recorder e gtr-cli

Quando usar um teste somente de execução

Use-o onde quer que um teste só seja executado: uma máquina de build, o computador de um testador, um conjunto de testes que precisa viajar ou ser guardado junto com o código.Uma execução de um teste somente de execução dá o mesmo resultado e o mesmo relatório que o teste original.

Guarde o próprio teste

Um teste somente de execução não pode ser editado: o GUI Test Studio não o abre.Guarde o .GTS como original, edite-o lá e exporte de novo depois de uma alteração.O GUI Test Runner-Recorder também pode exportar um, pelo menu Teste ou pelo botão de exportação da página do teste.

Um teste web com vários navegadores e dispositivos

A exportação pergunta o que incluir.Todos os navegadores e dispositivos coloca todas as ramificações geradas em um único arquivo, pronto para --branch all.Só a gravação, ou só a ramificação que você mostra, gera um teste somente de execução apenas dela.Um teste somente de execução só pode ser executado: novos navegadores e dispositivos são criados a partir do .GTS.

Guardar os testes com o código

Os testes são arquivos comuns: guarde-os no repositório ao lado do código que eles testam, e cada branch leva os testes que combinam com ele.

Ainda com problemas?Conte o que você estava tentando fazer, e respondemos em até um dia útil.Ask our team