Testování automatizace iOS s Xcode Rámec uživatelského rozhraní
⚡ Chytré shrnutí
Automatizované testování iOS s Xcode zaznamenává a přehrává akce uživatelského rozhraní v testované aplikaci v souladu s testovacím cyklem návrhu, testování, implementace a opětovného testování, dokud všechny případy nebudou úspěšné.
Testování automatizace iOS pomocí Xcode
Abyste zaručili kvalitu vaší iOS aplikace, měli byste dodržovat proces vývoje řízeného testováním, který je znázorněn na obrázku níže.
Testem řízený vývoj (TDD) je a Testování model, který se používá pro testování aplikací pro iOS a je součástí širší praxe mobilní testováníV tomto modelu musí tester postupovat podle 4 níže uvedených fází:
- Design: Zjistěte, co chcete testovat, a navrhněte si testovací případy.
- Test: Spusťte všechny testy a zjistěte, zda některé testovací případy selžou.
- Nářadí: RevUpravte svůj kód a opravte chyby, které způsobily selhání testu.
- Znovu otestujte: Pokud test selže, vraťte se k návrhu. Pokud všechny testovací případy projdou úspěšně, kód splňuje všechny testované požadavky.
Nastavení Xcode Projekt pro testování uživatelského rozhraní
K vytvoření testovacího programu pro iOS potřebujete Mac. Na vašem Macu musí být již nainstalováno následující:
- OS X — operační systém pro Mac.
- Xcode IDE — vývojový nástroj pro iOS.
- Automatizovaný testovací rámec — Automatizace uživatelského rozhraní, OCUnit a tak dále.
- iOS SDK 4 nebo vyšší.
⚠️ Poznámka k verzi: Výše uvedené předpoklady popisují nástrojový řetězec doby, ve které byly napsány dva následující návody. Na současném Macu, Xcode Součástí instalace jsou frameworky XCTest a XCUITest a samostatný nástroj UI Automation již není. Původní kroky jsou níže zachovány, protože dokumentují fungování frameworku, a jeho moderní ekvivalent je popsán dále.
Jak vytvořit automatizaci iOS pomocí rozhraní UI Automation Framework
Osm kroků níže nahraje skript pomocí nástroje Automation a přehraje ho v testované aplikaci.
Krok 1) Spusťte nástroje
Otevřít XCode -> Otevřít nástroj pro vývojáře -> Nástroj
Krok 2) Přidejte Automation Instrument
V okně Nástroje vyberte nástroj Automatizace.
Chcete-li vytvořit testovací skript, buď nahrajete testovací scénář nebo si to naprogramujete ručně.
Krok 3) Stiskněte červené tlačítko
Spouští se nástroj – okamžitě zastavte nahrávání. Pokud chcete nahrávání spustit, stiskněte červené tlačítko.
Krok 4) Vytvořte nový skript
V okně Skripty klikněte na Přidat > Vytvořit a vytvořte nový skript.
Krok 5) Vyberte cíl
Nyní jste v Tracv okně. Použijte tlačítko Vybrat Target rozbalovací nabídku pro přechod na ladicí verzi vaší aplikace.
V tomto případě vzorek od Applu SimpleDrillDown Jako testovaná aplikace se používá aplikace app. Její grafické uživatelské rozhraní je zobrazeno níže.
Krok 6) Spusťte záznam skriptu
Zaznamenejte svůj skript stisknutím tlačítka záznamu v horní nebo dolní části nástroje.
Nyní můžete v testované aplikaci provádět některé akce uživatelského rozhraní a váš skript je zaznamenán.
Krok 7) Podívejte se na svůj skript
Chcete-li zobrazit svůj skript, klepněte na TracRozbalovací nabídka Protokol / Protokol editoru a přepněte do zobrazení protokolu skriptu.
Uvidíte svůj nahraný skript.
Krok 8) Přehrajte svůj skript
Stiskněte tlačítko přehrávání. Skript se spustí a můžete ho zastavit po zobrazení protokolů.
⚠️ Historická poznámka: Nástroj Automatizace použitý v těchto osmi krocích byl v roce Xcode 8 a novější byly odstraněny, takže se v aktuální verzi již nenachází. Xcode instalace. Kroky jsou zde uchovány jako záznam o tom, jak framework fungoval; pro novou práci použijte návod XCUITest dále na této stránce.
Jak vytvořit automatizaci iOS pomocí rámce OCUnit
Druhá cesta umisťuje testy dovnitř Xcode samotného projektu, nikoli uvnitř Instruments.
Krok 1) Začátek Xcode IDE, Přidat cíl balíčku jednotkových testů
Krok 2) Napište název nového balíčku jednotkových testů jak je znázorněno na obrázku výše, a poté klikněte na tlačítko Dokončit.
Krok 3) Nastavte Unit Test jako aktivní cíl
Krok 4) Přidání skupiny pro testovací kurzy
Krok 5) Přidejte třídu Unit test
Krok 6) Nyní začněte s implementací
OCUnit používá k vytvoření testovacího programu jazyk Objective-C, takže vývojář musí tento jazyk znát. Moderní Xcode verze dodávány testování jednotky přes XCTest, který podporuje jak Objective-C, tak Swift, ale struktura cíle a třídy zobrazená v těchto šesti krocích zůstává nezměněna.
UIAutomation vs. XCUITest: Co se změnilo
Protože oba výše uvedené frameworky patří do dřívější generace sady nástrojů Apple, je vhodné si ujasnit, co je nahradilo a proč.
| Vzhled | Automatizace uživatelského rozhraní (nástroje) | XCUITest |
| Status | Zastaralé v Xcode 8 a odstraněno z pozdějších verzí | Podporovaný framework pro testování uživatelského rozhraní od společnosti Apple |
| Kde testy žijí | Skripty uvnitř nástroje Instruments tracelektronický dokument | Cíl balíčku pro testování uživatelského rozhraní uvnitř Xcode projekt |
| Jazyk | JavaScénář | Swift nebo Objective-C |
| Testovací běžec | Automatizační nástroj | XCTest, stejný běžec jako unit testy |
| Nepřetržitá integrace | Trapné – poháněné nástroji | Spouští se z příkazového řádku spolu s jednotkovými testy |
| Záznam | Tlačítko Nahrát v panelu nástrojů Nástroje | Tlačítko nahrávání v Xcode editor, který vydává Swift |
Praktickým důsledkem je, že sada XCUITest je běžný zdrojový kód projektu. Je kontrolována, verzována a spouštěna stejně jako zbytek kódové základny, což je hlavní důvod, proč je zaznamenaný...tracmodel zmizel.
Jak napsat test uživatelského rozhraní pro iOS pomocí XCUITest
Moderní ekvivalent osmi kroků Instruments je krátký. Níže uvedená struktura odráží stejnou myšlenku nahrávání a následného přehrávání, ale výstupem je zdrojový soubor, nikoli trace.
- Přidejte cíl. In Xcode zvolte Soubor > Nový > Target a vyberte šablonu UI Testing Bundle nebo zaškrtněte možnost zahrnout testy při vytváření nového projektu.
- Otevřete vygenerovanou testovací třídu. Xcode vytvoří podtřídu XCTestCase s prázdnými metodami nastavení a testování.
- Spusťte testovanou aplikaci. Vytvořte instanci XCUIApplication a zavolejte na ni funkci launch, která spustí aplikaci v samostatném procesu.
- Dotazujte se a jednejte. Dosahujte prvků pomocí dotazů na prvky – tlačítka, tabulky, statické texty – a volejte na ně příkazy tap, typeText nebo přejetím prstem.
- Tvrdit. Pomocí XCTAssert ověřte, zda očekávaný prvek po akci existuje.
- Běh. Proveďte test z Xcode testovacího navigátoru nebo z příkazového řádku, aby stejná sada běžela v kontinuální integraci.
Minimální test má tento tvar:
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)) } }
Záznamník stále existuje: umístění kurzoru do testovací metody a stisknutí tlačítka záznamu v editoru generuje tyto dotazy automaticky, což je přímý potomek kroku 6 výše. Širší principy testování automatizace platit beze změny.
Ukázka automatizace uživatelského rozhraní Code
Tento článek obsahuje několik příkladů zdrojového kódu. Pomohou vám lépe a rychleji pochopit tutoriál.
Ukázka automatizace uživatelského rozhraní — testovací skript pro demo automatizace uživatelského rozhraní.















