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
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 de | Por quê |
|---|---|
| Windows com o GUI Test Studio instalado | O instalador coloca o gtr-cli no PATH. |
| Uma sessão de área de trabalho conectada e desbloqueada | O 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 testes | Os elementos são comparados no tamanho em que foram gravados. |
| O aplicativo em teste | Instalado, ou iniciado pelo próprio teste com uma etapa Executar aplicativo. |
| Uma licença do seu plano | O 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:
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXXgtr-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:
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.
gtr-cli check testsO que o pipeline recebe de volta
| Código de saída | Significado |
|---|---|
| 0 | Todos os testes foram aprovados.O build fica verde. |
| 1 | Pelo menos um teste falhou. |
| 2 | O comando estava errado: uma opção desconhecida, um arquivo ausente. |
| 3 | Um teste não pôde ser executado, por exemplo porque a tela é diferente da gravação. |
| 4 | Uma execução foi interrompida. |
| Arquivo | Para |
|---|---|
| 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
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: resultsMonte 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ção | O que faz |
|---|---|
| --countdown 0 | Começa na hora.Em um terminal, a contagem regressiva padrão dá tempo para você soltar o mouse. |
| --retries 1 | Executa um teste reprovado mais uma vez antes de considerá-lo reprovado. |
| --fail-fast | Para depois do primeiro teste reprovado. |
| --timeout 600 | Interrompe 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.5 | Inicia o teste neste momento, em segundos. |
| --branch all | Para 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 on | Executa testes web sem janela do navegador sempre que o teste permitir. |
| --parallel off | Executa os navegadores e dispositivos de um teste um depois do outro, e não lado a lado. |
| --screen all | Em 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 off | Oculta a fina faixa TEST RUNNING no alto da tela durante a execução. |
| --ai-verification on | Deixa 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 builtin | Usa um modelo na própria máquina de build: nada a instalar, e um modelo que falta é baixado uma vez. |
| --ai-minor-differences fail | Faz reprovar uma asserção em que a IA só encontra diferenças pequenas.Por padrão, ela é aprovada. |
| --ai-wait 600 | O tempo máximo que um teste aguarda pelos vereditos da IA, em segundos.Por padrão, a ferramenta escolhe sozinha. |
gtr-cli helpReportar 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.
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression| Opção | O que faz |
|---|---|
| --jira on-failure | Cria uma issue do Jira para cada teste reprovado.Um teste que não pôde ser executado nunca vira uma. |
| --jira-project SCRUM | O projeto para onde as issues vão, pela chave dele. |
| --jira-issue-type Bug | O 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,b | Rótulos próprios, separados por vírgulas. |
| --jira-repeat new | Sempre 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:
gtr-cli help web-appsTodos 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.
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xmlCompartilhar 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ém | As etapas, as asserções e a referência visual: a gravação, imagens e designs | Só as etapas e as asserções |
| Feito para | Criar e editar o teste | Executar o teste |
| Tamanho | Maior: cresce com a gravação | Muito menor |
| Abre no | GUI Test Studio e GUI Test Runner-Recorder | GUI 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