Testowanie automatyczne iOS za pomocą Xcode Struktura interfejsu użytkownika
⚡ Inteligentne podsumowanie
Testowanie automatyzacji iOS z Xcode rejestruje i odtwarza działania interfejsu użytkownika w testowanej aplikacji, postępując zgodnie z cyklem projektowania, testowania, implementacji i ponownego testowania opartym na testach, aż do momentu, gdy każdy przypadek zostanie zaliczony.

Testowanie automatyczne iOS przy użyciu Xcode
Aby zagwarantować jakość swojej aplikacji na system iOS, należy postępować zgodnie z procesem programowania sterowanego testami przedstawionym na poniższym rysunku.
Rozwój oparty na testach (TDD) to a testowanie model, który jest stosowany do testowania aplikacji iOS i mieści się w szerszej praktyce testy mobilneW tym modelu tester musi wykonać 4 poniższe fazy:
- Design: Zastanów się, co chcesz przetestować i zaprojektuj przypadki testowe.
- Test: Uruchom wszystkie testy i sprawdź, czy którykolwiek przypadek testowy się nie powiedzie.
- Wprowadzić w życie: RevPopraw swój kod i popraw błędy, które spowodowały niepowodzenie testu.
- Przetestuj ponownie: Jeśli test się nie powiedzie, wróć do projektu. Jeśli wszystkie przypadki testowe zakończą się sukcesem, kod spełnia wszystkie wymagania testowe.
Konfigurowanie Xcode Projekt do testowania interfejsu użytkownika
Aby utworzyć program testowy iOS, potrzebujesz komputera Mac. Na komputerze Mac muszą być już zainstalowane następujące aplikacje:
- OS X — system operacyjny dla komputerów Mac.
- Xcode IDE — narzędzie programistyczne dla systemu iOS.
- Zautomatyzowane ramy testowe — Automatyzacja interfejsu użytkownika, OCUnit i tak dalej.
- Zestaw SDK iOS 4 lub więcej.
⚠️ Uwaga dotycząca wersji: Powyższe wymagania wstępne opisują zestaw narzędzi z epoki, w której powstały dwa poniższe przewodniki. Na obecnym komputerze Mac: Xcode Zawiera frameworki XCTest i XCUITest w pudełku, a oddzielny instrument UI Automation nie jest już częścią instalacji. Oryginalne kroki zostały zachowane poniżej, ponieważ dokumentują sposób działania frameworka, a jego współczesny odpowiednik opisano poniżej.
Jak utworzyć automatyzację systemu iOS przy użyciu platformy automatyzacji interfejsu użytkownika
Osiem poniższych kroków pozwala na zarejestrowanie skryptu za pomocą narzędzia Automation i jego odtworzenie w testowanej aplikacji.
Krok 1) Uruchom instrumenty
Otwórz XCode -> Otwórz narzędzie programistyczne -> Instrument
Krok 2) Dodaj instrument automatyzacji
W oknie Instrumenty wybierz instrument Automatyzacja.
Aby utworzyć skrypt testowy, należy nagrać scenariusz testowy lub zaprogramujesz go ręcznie.
Krok 3) Naciśnij czerwony przycisk
Instrument jest w trakcie uruchamiania — natychmiast zatrzymaj nagrywanie. Jeśli chcesz rozpocząć nagrywanie, naciśnij czerwony przycisk.
Krok 4) Utwórz nowy skrypt
W oknie Skrypty kliknij Dodaj > Utwórz, aby utworzyć nowy skrypt.
Krok 5) Wybierz cel
Jesteś teraz w TracOkno e. Użyj opcji Wybierz Target rozwijana lista umożliwiająca przejście do wersji debugowania aplikacji.
W tym przypadku próbka Apple'a Proste drążenie w dół Aplikacja jest używana jako aplikacja testowa. Posiada ona interfejs graficzny pokazany poniżej.
Krok 6) Rozpocznij nagrywanie swojego skryptu
Nagraj swój skrypt, naciskając przycisk nagrywania u góry lub u dołu narzędzia.
Teraz możesz wykonać pewne czynności interfejsu użytkownika w testowanej aplikacji, a Twój skrypt zostanie zarejestrowany.
Krok 7) Zobacz swój skrypt
Aby zobaczyć swój skrypt, naciśnij Trace Dziennik / Dziennik edytora rozwijana lista i przełączenie do widoku dziennika skryptów.
Zobaczysz nagrany skrypt.
Krok 8) Odtwórz swój scenariusz
Naciśnij przycisk „Odtwórz”. Skrypt zostanie uruchomiony i możesz go zatrzymać po wyświetleniu logów.
⚠️ Uwaga historyczna: Narzędzie automatyzacji używane w tych ośmiu krokach zostało wycofane w Xcode 8 i później usunięto, więc nie występuje już w obecnej wersji Xcode Instalacje. Kroki są tutaj zachowane jako zapis działania frameworka; w przypadku nowych prac skorzystaj z instrukcji XCUITest zamieszczonej niżej na tej stronie.
Jak stworzyć automatyzację iOS przy użyciu frameworka OCUnit
Druga trasa umieszcza testy wewnątrz Xcode samego projektu, a nie wewnątrz Instrumentów.
Krok 1) Rozpoczęcie Xcode IDE, Dodaj cel pakietu testów jednostkowych
Krok 2) Wpisz nazwę nowego pakietu testów jednostkowych jak pokazano na rysunku powyżej, a następnie kliknij Zakończ.
Krok 3) Uczyń test jednostkowy aktywnym celem
Krok 4) Dodaj grupę do zajęć testowych
Krok 5) Dodaj klasę testów jednostkowych
Krok 6) Teraz rozpocznij wdrażanie
OCUnit wykorzystuje język Objective-C do tworzenia programu testowego, więc programista musi znać ten język. Xcode wersje dostarczane testów jednostkowych zamiast tego przez XCTest, który obsługuje zarówno Objective-C, jak i Swift, ale struktura docelowa i klasowa przedstawiona w tych sześciu krokach pozostaje niezmieniona.
UIAutomation kontra XCUITest: Co się zmieniło
Ponieważ oba przedstawione powyżej frameworki należą do wcześniejszej generacji zestawu narzędzi Apple, warto precyzyjnie określić, czym je zastąpiono i dlaczego.
| WYGLĄD | Automatyzacja interfejsu użytkownika (instrumenty) | XCUITest |
| Status | Przestarzałe w Xcode 8 i usunięto z późniejszych wydań | Obsługiwana przez Apple struktura testowania interfejsu użytkownika |
| Gdzie odbywają się testy | Skrypty wewnątrz instrumentów tracdokument elektroniczny | Cel pakietu testowania interfejsu użytkownika w Xcode projekt |
| Wybierz język | JAVASCRIPT | Swift lub Objective-C |
| Tester | Narzędzie automatyzacji | XCTest, ten sam program uruchamiający testy jednostkowe |
| Ciągła integracja | Niezręcznie — prowadzony przez Instrumenty | Działa z poziomu wiersza poleceń wraz z testami jednostkowymi |
| Nagranie | Przycisk nagrywania na pasku narzędzi instrumentów | Przycisk nagrywania w Xcode edytor, który emituje Swift |
Praktyczną konsekwencją jest to, że pakiet XCUITest to zwykły kod źródłowy projektu. Jest on sprawdzany, wersjonowany i wykonywany jak reszta bazy kodu, co jest głównym powodem, dla którego…tracModel zniknął.
Jak napisać test interfejsu użytkownika iOS za pomocą XCUITest
Współczesny odpowiednik ośmiu kroków Instruments jest krótki. Poniższa struktura odzwierciedla tę samą ideę nagrywania i odtwarzania, ale wyjściem jest plik źródłowy, a nie trace.
- Dodaj cel. In Xcode wybierz Plik > Nowy > Target i wybierz szablon Pakietu testowania interfejsu użytkownika lub zaznacz opcję uwzględnienia testów podczas tworzenia nowego projektu.
- Otwórz wygenerowaną klasę testową. Xcode tworzy podklasę XCTestCase z pustymi metodami konfiguracji i testu.
- Uruchom testowaną aplikację. Utwórz instancję XCUIApplication i wywołaj na niej launch, co spowoduje uruchomienie aplikacji w osobnym procesie.
- Zapytaj i działaj. Możesz dotrzeć do elementów za pomocą zapytań o elementy — przycisków, tabel, tekstów statycznych — i wywołać je za pomocą funkcji tap, typeText lub przesuń palcem.
- Zapewniać. Użyj XCTAssert, aby sprawdzić, czy oczekiwany element istnieje po wykonaniu akcji.
- Biegać. Wykonaj test z Xcode nawigatora testów lub z wiersza poleceń, aby ten sam pakiet działał w ciągłej integracji.
Minimalny test wygląda następująco:
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)) } }
Rejestrator nadal istnieje: umieszczenie kursora w metodzie testowej i naciśnięcie przycisku nagrywania w edytorze automatycznie generuje te zapytania, co jest bezpośrednim następcą kroku 6 powyżej. Szersze zasady testowanie automatyzacji obowiązują bez zmian.
Przykład automatyzacji interfejsu użytkownika Code
W tym artykule znajdziesz przykłady kodu źródłowego. Pomogą Ci one szybciej i lepiej zrozumieć samouczek.
Przykład automatyzacji interfejsu użytkownika — skrypt testowy dla demonstracji UI Automation.















