Test di automazione iOS con Xcode Framework dell'interfaccia utente
โก Riepilogo intelligente
Test di automazione iOS con Xcode Registra e riproduce le azioni dell'interfaccia utente su un'applicazione in fase di test, seguendo un ciclo di test-driven che prevede progettazione, test, implementazione e un nuovo test fino a quando ogni caso non viene superato.
Test di automazione iOS utilizzando Xcode
Per garantire la qualitร della tua applicazione iOS, dovresti seguire il processo di sviluppo guidato dai test (TDD) illustrato nella figura seguente.
Lo sviluppo guidato dai test (TDD) รจ un analisi modello che viene applicato al test delle applicazioni iOS e si colloca all'interno della pratica piรน ampia di test mobileIn questo modello, un tester deve seguire le 4 fasi seguenti:
- Design: Definisci cosa vuoi testare e progetta i tuoi casi di test.
- Test: Esegui tutti i test e verifica se qualcuno di essi fallisce.
- Strumento: RevUsa il tuo codice e correggi i bug che hanno causato il fallimento del test.
- Prova di nuovo: Se un test fallisce, ripristinare la progettazione originale. Se tutti i casi di test vengono superati, il codice soddisfa tutti i requisiti testati.
Impostare Xcode Progetto per il test dell'interfaccia utente
Per creare un programma di test per iOS รจ necessario un Mac. Il Mac deve giร avere installati i seguenti programmi:
- OS X โ il sistema operativo per un Mac.
- Xcode IDE โ lo strumento di sviluppo per iOS.
- Un framework di test automatizzato โ Automazione dell'interfaccia utente, OCUnit e cosรฌ via.
- iOS SDK 4 o superiore.
โ ๏ธ Nota sulla versione: I prerequisiti sopra descritti illustrano la toolchain dell'epoca in cui sono state scritte le due guide che seguono. Su un Mac attuale, Xcode Il pacchetto include i framework XCTest e XCUITest, mentre lo strumento separato di automazione dell'interfaccia utente non รจ piรน incluso nell'installazione. I passaggi originali sono conservati di seguito perchรฉ documentano il funzionamento del framework, mentre la procedura equivalente moderna รจ descritta piรน avanti.
Come creare l'automazione iOS utilizzando UI Automation Framework
Gli otto passaggi seguenti consentono di registrare uno script con lo strumento di automazione e di riprodurlo sull'applicazione in fase di test.
Passaggio 1) Avviare Strumenti
Apri XCode -> Apri Strumento per sviluppatori -> Strumento
Passaggio 2) Aggiungi lo strumento di automazione
Nella finestra Strumenti, selezionare lo strumento Automazione.
Per creare uno script di test, รจ necessario registrare un scenario di prova oppure lo si programma manualmente.
Passaggio 3) Premere il pulsante rosso
Si sta avviando uno strumento: interrompi immediatamente la registrazione. Se desideri avviare la registrazione, premi il pulsante rosso.
Passaggio 4) Crea un nuovo script
Nella finestra Script, fai clic su Aggiungi > Crea per creare un nuovo script.
Passaggio 5) Scegli il bersaglio
Ora ti trovi nel Trace finestra. Usa Scegli Target Seleziona la versione di debug della tua app tramite il menu a tendina.
In questo caso, il campione di Apple SempliceDrillDown L'app viene utilizzata come applicazione da testare. Ha l'interfaccia grafica mostrata di seguito.
Passaggio 6) Inizia a registrare il tuo script
Registra il tuo script premendo il pulsante di registrazione nella parte superiore o inferiore dello strumento.
Ora puoi eseguire alcune azioni sull'interfaccia utente dell'applicazione in fase di test e il tuo script verrร registrato.
Passaggio 7) Visualizza il tuo script
Per vedere la tua sceneggiatura, premi il pulsante TracSeleziona il menu a tendina Log / Editor Log e passa alla visualizzazione del registro dello script.
Vedrai il tuo script registrato.
Passaggio 8) Riproduci la tua sceneggiatura
Premi il pulsante di riproduzione. Lo script verrร eseguito e potrai interromperlo dopo la visualizzazione dei log.
โ ๏ธ Nota storica: Lo strumento di automazione utilizzato in questi otto passaggi รจ stato deprecato in Xcode 8 e successivamente rimosso, quindi non รจ piรน presente nella versione attuale Xcode installazioni. I passaggi sono conservati qui come documentazione del funzionamento del framework; per nuove installazioni, utilizzare la procedura guidata XCUITest piรน in basso in questa pagina.
Come creare l'automazione iOS utilizzando il framework OCUnit
Il secondo percorso colloca i test all'interno del Xcode il progetto stesso piuttosto che all'interno di Instruments.
Passaggio 1) Inizia Xcode IDE, Aggiungi destinazione Unit Test Bundle
Passaggio 2) Scrivere il nome del nuovo Unit Test Bundle come mostrato nella figura sopra, quindi fare clic su Fine.
Passaggio 3) Eseguire il test unitario del target attivo
Passaggio 4) Aggiungere un gruppo per le classi di prova
Passaggio 5) Aggiungere una classe di test unitario
Passaggio 6) Ora inizia l'implementazione
OCUnit utilizza il linguaggio Objective-C per creare il programma di test, quindi lo sviluppatore deve conoscere tale linguaggio. Moderno Xcode versioni spedite unit test tramite XCTest invece, che supporta sia Objective-C che Swift, ma la struttura target-classe mostrata in questi sei passaggi rimane invariata.
UIAutomation vs XCUITest: cosa รจ cambiato?
Poichรฉ entrambi i framework sopra menzionati appartengono a una generazione precedente della toolchain di Apple, รจ opportuno precisare cosa li ha sostituiti e perchรฉ.
| Aspetto | Automazione dell'interfaccia utente (strumenti) | XCUITest |
| Stato | Deprecato in Xcode 8 e rimosso dalle versioni successive | Framework di test dell'interfaccia utente supportato da Apple |
| Dove vivono i test | Script all'interno di uno strumento tracdocumento elettronico | Un target UI Testing Bundle all'interno del Xcode progetto |
| Lingue disponibili | JavaCopione | Swift o Objective-C |
| Corridore di prova | Lo strumento di automazione | XCTest, lo stesso runner dei test unitari |
| Integrazione continua | Imbarazzante โ guidato attraverso gli strumenti | Esegue da riga di comando insieme ai test unitari |
| Registrazione | Pulsante Registra nella barra degli strumenti Strumenti | pulsante Registra nel Xcode editore, che emette Swift |
La conseguenza pratica รจ che una suite XCUITest รจ un normale codice sorgente di progetto. Viene revisionata, versionata ed eseguita come il resto del codice sorgente, che รจ il motivo principale per cui il codice registratotrace il modello รจ scomparso.
Come scrivere un test dell'interfaccia utente iOS con XCUITest
L'equivalente moderno degli otto passaggi di Instruments รจ breve. La struttura sottostante rispecchia la stessa idea di registrazione e successiva riproduzione, ma l'output รจ un file sorgente anzichรฉ un trace.
- Aggiungi il bersaglio. In Xcode scegli File > Nuovo > Target e selezionare il modello UI Testing Bundle oppure spuntare l'opzione per includere i test durante la creazione di un nuovo progetto.
- Apri la classe di test generata. Xcode crea una sottoclasse di XCTestCase con metodi di configurazione e test vuoti.
- Avviare l'applicazione in fase di test. Crea un'istanza di XCUIApplication e chiama il metodo launch su di essa, che avvia l'applicazione in un processo separato.
- Interrogare e agire. ร possibile accedere agli elementi tramite le query degli elementi (pulsanti, tabelle, testi statici) e richiamare le funzioni tap, typeText o swipe su di essi.
- Affermazione. Utilizzare XCTAssert per verificare che l'elemento previsto esista dopo l'azione.
- Correre. Eseguire il test dal Xcode test navigator, oppure dalla riga di comando in modo che la stessa suite venga eseguita in integrazione continua.
Un test minimo segue questa forma:
import XCTest final class AppUITests: XCTestCase { func testTappingFirstRowShowsDetail() { let app = XCUIApplication() app.launch() // act on the first row of the list app.tables.cells.element(boundBy: 0).tap() // verify that the next screen appeared XCTAssertTrue(app.staticTexts.firstMatch.waitForExistence(timeout: 5)) } }
Il registratore esiste ancora: posizionando il cursore all'interno di un metodo di test e premendo il pulsante di registrazione nell'editor, queste query vengono generate automaticamente, il che รจ il diretto discendente del passaggio 6 sopra. I principi piรน ampi di test di automazione applicare senza modifiche.
Esempio di automazione dell'interfaccia utente Code
Questo articolo include alcuni esempi di codice sorgente. Ti aiuteranno a comprendere il tutorial in modo piรน chiaro e rapido.
Esempio di automazione dell'interfaccia utente โ script di test per la demo di automazione dell'interfaccia utente.















