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
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.
| Serve | Perché |
|---|---|
| Windows con GUI Test Studio installato | Il programma di installazione mette gtr-cli nel PATH. |
| Una sessione desktop con accesso effettuato e sbloccata | Il 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 test | Gli elementi vengono confrontati alla dimensione con cui sono stati registrati. |
| L'app da testare | Installata, oppure avviata dal test stesso con un passaggio Esegui app. |
| Un posto del vostro piano | L'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:
gtr-cli login --key GTS-XXXX-XXXX-XXXX-XXXXgtr-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:
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.
gtr-cli check testsCosa riceve la pipeline
| Codice di uscita | Significato |
|---|---|
| 0 | Tutti i test sono stati superati.La build diventa verde. |
| 1 | Almeno un test non è stato superato. |
| 2 | Il comando era sbagliato: un'opzione sconosciuta, un file mancante. |
| 3 | Un test non ha potuto essere eseguito, per esempio perché lo schermo è diverso da quello della registrazione. |
| 4 | Un'esecuzione è stata interrotta. |
| File | Per |
|---|---|
| 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
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: resultsCostruire 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
| Opzione | Cosa fa |
|---|---|
| --countdown 0 | Avvia subito.In un terminale, il conto alla rovescia predefinito vi dà il tempo di lasciare il mouse. |
| --retries 1 | Esegue ancora una volta un test non superato prima di considerarlo tale. |
| --fail-fast | Si ferma dopo il primo test non superato. |
| --timeout 600 | Interrompe un test ancora in esecuzione dopo 10 minuti. |
| --baseline-profile "Dark mode" | Esegue con uno dei vostri profili di baseline. |
| --start-at 12.5 | Avvia il test da questo momento, in secondi. |
| --branch all | Per un test web creato per più browser e dispositivi: eseguirli tutti, test registrato compreso.Indicatene invece uno o più per eseguire solo quelli. |
| --headless on | Eseguire i test web senza finestra del browser ovunque il test lo consenta. |
| --parallel off | Eseguire i browser e i dispositivi di un test uno dopo l'altro anziché affiancati. |
| --screen all | Su 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 off | Nasconde il sottile banner TEST IN ESECUZIONE in cima allo schermo durante l'esecuzione. |
| --ai-verification on | Lascia 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 builtin | Usa un modello sulla macchina di build stessa: nulla da installare, e un modello mancante viene scaricato una sola volta. |
| --ai-minor-differences fail | Fa fallire un controllo in cui l'IA trova solo differenze minori.Per impostazione predefinita viene superato. |
| --ai-wait 600 | Il tempo più lungo che un test attende i suoi esiti dell'IA, in secondi.Per impostazione predefinita lo strumento sceglie da solo. |
gtr-cli helpSegnalare 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.
gtr-cli run tests --countdown 0 --jira on-failure --jira-project SCRUM --jira-labels ui-regression| Opzione | Cosa fa |
|---|---|
| --jira on-failure | Crea un ticket Jira per ogni test non superato.Un test che non ha potuto essere eseguito non lo diventa mai. |
| --jira-project SCRUM | Il progetto in cui finiscono i ticket, indicato dalla sua chiave. |
| --jira-issue-type Bug | Il 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,b | Etichette vostre, separate da virgole. |
| --jira-repeat new | Sempre 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:
gtr-cli help web-appsOgni 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.
gtr-cli generate tests --branch missing
gtr-cli run tests --branch all --countdown 0 --junit results\junit.xmlCondividere 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) | |
|---|---|---|
| Contiene | I passaggi, le verifiche e il riferimento visivo: la registrazione, le immagini e i design | Solo i passaggi e le verifiche |
| Fatto per | Creare e modificare il test | Eseguire il test |
| Dimensione | Maggiore: cresce con la registrazione | Molto minore |
| Si apre in | GUI Test Studio e GUI Test Runner-Recorder | GUI 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