Eseguire i test nella pipeline

L'esecutore da riga di comando, i risultati che il vostro strumento CI legge ed esempi pronti all'uso.

Un test, qualsiasi pipeline

gtr-cli, lo strumento di esecuzione da riga di comando, esegue un test esattamente come il pulsante Esegui test: stessi controlli, stesso report, stessa cronologia.Aggiunge ciò che serve a una pipeline: un codice di uscita, file di risultati che il vostro strumento di CI comprende, e ogni prova di un errore in un'unica cartella.

La vostra pipeline

e qualsiasi strumento che esegua un 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

Esecuzione di 12 test sullo schermo dell'agente di build...

PASSED 12 di 12 test · exit code 0

  • Codice di uscita0 quando tutti i test sono superati, 1 quando uno non lo è: la build diventa verde o rossa.
  • JUnit, JSON, MarkdownRisultati che la vostra pipeline mostra come risultati dei test, con ogni passaggio nominato.
  • Le prove di ogni fallimentoImmagini attese ed effettive, lo schermo, il report e il video in una sola cartella.

Preparare la macchina di build

Un test di interfaccia grafica viene riprodotto su uno schermo reale, quindi la macchina che lo esegue deve averne uno.

ServePerché
Windows con GUI Test Studio installatoIl programma di installazione mette gtr-cli nel PATH.
Una sessione desktop con accesso effettuato e sbloccataIl test fa clic e digita sullo schermo reale.Eseguite l'agente di build come un normale programma in quella sessione, non come servizio in background.
La risoluzione e il ridimensionamento dello schermo dei testGli elementi vengono confrontati alla dimensione con cui sono stati registrati.
L'app da testareInstallata, oppure avviata dal test stesso con un passaggio Esegui app.
Un posto del vostro pianoL'agente accede una volta, con una chiave macchina dalla pagina del vostro account.

Create la chiave nella pagina del vostro account, sotto Chiavi macchina, poi eseguite questo una volta sull'agente, con l'account Windows usato dalla pipeline:

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

gtr-cli whoami indica se l'agente ha effettuato l'accesso e fino a quando.Senza accesso, un'esecuzione non parte: stampa una riga che inizia con COULD NOT RUN e termina con il codice di uscita 3.

Agenti di build: chiavi macchina

Il primo comando

In un terminale sulla macchina di build, eseguite tutti i test di una cartella:

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

--countdown 0 avvia subito (non c'è nessuno davanti allo schermo), --junit scrive il file dei risultati che il vostro strumento di CI legge, e --artifacts raccoglie video, report e immagini degli errori in un'unica cartella.

Questa macchina è pronta?Controlla ogni test senza eseguirlo
gtr-cli check tests

Cosa riceve la pipeline

Codice di uscitaSignificato
0Tutti i test sono stati superati.La build diventa verde.
1Almeno un test non è stato superato.
2Il comando era sbagliato: un'opzione sconosciuta, un file mancante.
3Un test non ha potuto essere eseguito, per esempio perché lo schermo è diverso da quello della registrazione.
4Un'esecuzione è stata interrotta.
FilePer
JUnit (--junit)La scheda dei risultati dei test di GitLab, Jenkins, Azure DevOps, TeamCity e GitHub
Riepilogo Markdown (--summary)Un commento a una merge request o la pagina di riepilogo della build
JSON (--json)Le vostre dashboard e i vostri script
Cartella degli artefatti (--artifacts)Il video, il report di affidabilità e le immagini degli errori di ogni test
Segnalazioni di bug (--bug-report pdf)Una segnalazione di bug compilata per ogni test non superato

Le esecuzioni finiscono anche nella cartella dei risultati di ogni test, così la Cronologia di GUI Test Runner-Recorder mostra le esecuzioni della pipeline accanto alle vostre.

Esempi pronti all'uso

.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

Costruire un comando senza digitarlo

In entrambe le app, Riga di comando e CI/CD (nel menu File di GUI Test Studio, nel menu Test di GUI Test Runner-Recorder) costruisce il comando per voi: spuntate le opzioni che volete, copiate il risultato, oppure copiate il frammento già pronto per il vostro strumento di CI con i vostri percorsi reali.La sua scheda Riferimento spiega ogni opzione.

Opzioni che userete

OpzioneCosa fa
--countdown 0Avvia subito.In un terminale, il conto alla rovescia predefinito vi dà il tempo di lasciare il mouse.
--retries 1Esegue ancora una volta un test non superato prima di considerarlo tale.
--fail-fastSi ferma dopo il primo test non superato.
--timeout 600Interrompe un test ancora in esecuzione dopo 10 minuti.
--baseline-profile "Dark mode"Esegue con uno dei vostri profili di baseline.
--start-at 12.5Avvia il test da questo momento, in secondi.
--branch allPer un test web creato per più browser e dispositivi: eseguirli tutti, test registrato compreso.Indicatene invece uno o più per eseguire solo quelli.
--headless onEseguire i test web senza finestra del browser ovunque il test lo consenta.
--parallel offEseguire i browser e i dispositivi di un test uno dopo l'altro anziché affiancati.
--screen allSu una macchina di build con più monitor: eseguire su tutti, sul principale, sul numero di un monitor, sullo schermo del terminale, o dove il test è stato registrato.Per impostazione predefinita, lo schermo indicato dalle Impostazioni progetto del test: lo schermo del terminale, a meno che ne indichino uno.
--run-banner offNasconde il sottile banner TEST IN ESECUZIONE in cima allo schermo durante l'esecuzione.
--ai-verification onLascia all'IA l'esito finale delle asserzioni visive e testuali non superate.L'esito del test e il codice di uscita seguono di conseguenza, e ciò che è cambiato viene scritto nella console e nei file dei risultati.
--ai-provider builtinUsa un modello sulla macchina di build stessa: nulla da installare, e un modello mancante viene scaricato una sola volta.
--ai-minor-differences failFa fallire un controllo in cui l'IA trova solo differenze minori.Per impostazione predefinita viene superato.
--ai-wait 600Il tempo più lungo che un test attende i suoi esiti dell'IA, in secondi.Per impostazione predefinita lo strumento sceglie da solo.
Ogni opzione, spiegata
gtr-cli help

Segnalare gli errori a Jira

Un test non superato può diventare da solo un ticket Jira: i passaggi per riprodurre, le immagini attesa e trovata con ciò che è cambiato evidenziato, la segnalazione di bug in PDF e le prove.Lo stesso difetto visto di nuovo, in un'altra build, su un altro browser o dispositivo, aggiunge un commento al suo ticket aperto invece di aprirne un secondo.

Comando
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression
OpzioneCosa fa
--jira on-failureCrea un ticket Jira per ogni test non superato.Un test che non ha potuto essere eseguito non lo diventa mai.
--jira-project SCRUMIl progetto in cui finiscono i ticket, indicato dalla sua chiave.
--jira-issue-type BugIl tipo di ticket.Se il progetto non ne ha uno con quel nome, viene usato il più vicino.
--jira-assignee "James"A chi viene assegnato il ticket: un'e-mail o un nome tra le persone del progetto.
--jira-labels a,bEtichette vostre, separate da virgole.
--jira-repeat newSempre un nuovo ticket, mai un commento su quello aperto.

La connessione viene dall'ambiente, quindi il token non compare mai in una riga di comando né in un log di build: JIRA_BASE_URL (il vostro sito Jira), JIRA_USER_EMAIL e JIRA_API_TOKEN.Nel vostro strumento di CI, conservate il token come segreto o come parametro password.Su un computer in cui GUI Test Runner-Recorder è connesso a Jira, viene usata invece la sua connessione salvata.

L'intero flusso, con una issue reale e un build reale: Collegare Jira al rapporto di affidabilità.

Le app web su una macchina di build

Un test registrato su un'app web apre il proprio browser da sé, in modalità kiosk a schermo intero, e lo chiude alla fine.Su una macchina di build questo richiede la dimensione dello schermo e il ridimensionamento della registrazione, un desktop con accesso effettuato e sbloccato, e un'esecuzione che termini per il proprio limite di tempo.Apri app web dice che cosa succede altrimenti e che cosa fare.

Le stesse note si trovano nello strumento stesso:

Comando
gtr-cli help web-apps

Ogni browser e ogni dispositivo, nella pipeline

Un test web creato per più browser e dispositivi li esegue tutti con --branch all, ciascuno con la propria voce nel file JUnit e la propria cronologia.I telefoni, i tablet e gli altri rami senza finestra vengono eseguiti affiancati, quindi non hanno bisogno di uno schermo proprio.gtr-cli info elenca il nome di ciascuno, e gtr-cli generate crea quelli ancora mancanti.Vedete Ogni browser e ogni dispositivo da una sola registrazione.

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

Condividere i test senza la registrazione

Un file di test contiene la sua registrazione, che serve per modificarlo ma non per eseguirlo.File, Esporta come test leggero di sola esecuzione (.GTR) in GUI Test Studio scrive lo stesso test senza di essa: un file molto più piccolo per una macchina di build o per un collega che esegue soltanto i test. gtr-cli e GUI Test Runner-Recorder eseguono i file .GTR come qualsiasi test.

Test (.GTS)Test di sola esecuzione (.GTR)
ContieneI passaggi, le verifiche e il riferimento visivo: la registrazione, le immagini e i designSolo i passaggi e le verifiche
Fatto perCreare e modificare il testEseguire il test
DimensioneMaggiore: cresce con la registrazioneMolto minore
Si apre inGUI Test Studio e GUI Test Runner-RecorderGUI Test Runner-Recorder e gtr-cli

Quando usare un test di sola esecuzione

Usatelo ovunque un test venga solo eseguito: una macchina di build, il computer di un tester, un insieme di test che deve viaggiare o essere conservato con il vostro codice.L'esecuzione di un test di sola esecuzione dà lo stesso risultato e lo stesso report del suo test.

Conservate il test originale

Un test di sola esecuzione non può essere modificato: GUI Test Studio non lo apre.Conservate il .GTS come originale, modificatelo lì ed esportate di nuovo dopo una modifica.Anche GUI Test Runner-Recorder può esportarne uno, dal suo menu Test o dal pulsante di esportazione nella pagina del test.

Un test web con più browser e dispositivi

L'esportazione chiede cosa includere.Tutti i browser e dispositivi mette ogni ramo generato in un unico file, pronto per --branch all.Solo la registrazione, o solo il ramo che state mostrando, crea un test di sola esecuzione di quello soltanto.Un test di sola esecuzione può solo essere eseguito: i nuovi browser e dispositivi si creano dal .GTS.

Tenere i test con il codice

I test sono file ordinari: teneteli nel vostro repository accanto al codice che testano, e ogni branch porta con sé i test adatti.

Ancora bloccati?Diteci cosa stavate cercando di fare e rispondiamo entro un giorno lavorativo.Ask our team