Uruchom skrypt Robo (iOS+)
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W tym dokumencie opisujemy, jak używać skryptów Robo, czyli testów, które automatyzują ręczne zadania kontroli jakości w przypadku aplikacji mobilnych i umożliwiają stosowanie strategii testowania w trybie ciągłej integracji (CI) oraz przed wprowadzeniem aplikacji na rynek. Możesz na przykład używać skryptów Robo do testowania typowej ścieżki użytkownika lub podawania określonych danych wejściowych interfejsu, takich jak nazwa użytkownika i hasło. Skrypty Robo to funkcja testu Robo.
Skrypty Robo używają testu Robo jako mechanizmu testowego. W najprostszej postaci skrypt Robo składa się z sekwencji działań w interfejsie, takich jak wpisanie tekstu „nazwa użytkownika”, a następnie kliknięcie przycisku OK. Skrypty Robo mogą też zawierać działania takie jak czekanie na pojawienie się elementu, klikanie w określonym punkcie elementu i wykonywanie poleceń powłoki Android Debug Bridge (adb
).
Skrypty Robo mają te zalety w porównaniu z tradycyjnymi platformami testowymi:
Możliwość
|
Opis
|
Bardzo wytrzymały
|
Skrypty Robo są odporne na znaczne różnice strukturalne i behawioralne między wersjami aplikacji oraz na niestabilność aplikacji.
|
Otwarte
|
Po zakończeniu skryptu Robo test podstawowy Robo może przejąć kontrolę i kontynuować testowanie aplikacji. Takie podejście do testowania umożliwia kilka kluczowych przypadków użycia. Możesz na przykład użyć skryptu Robo, aby wprowadzić aplikację w określony stan, wykonując niestandardowy proces logowania.
|
Z nagraniem
|
Nie musisz ręcznie pisać kodu skryptów Robo. Można je nagrywać za pomocą rejestratora skryptów Robo w Androidzie Studio. Tworzenie lub modyfikowanie skryptów Robo zwykle nie wymaga wiedzy o tworzeniu aplikacji mobilnych.
|
Elastyczne
|
Skrypty Robo mogą wchodzić w interakcje z nienatywnymi elementami interfejsu, które są powszechne w grach.
|
Skrypty Robo są uruchamiane warunkowo podczas testu Robo, co pozwala użytkownikom rozszerzać zachowanie robota, zwykle w celu uzyskania większego pokrycia lub kierowania na konkretne funkcje. W przeciwieństwie do tradycyjnych platform testowych skrypty Robo obsługują:
- Różne warunki wyzwalające, np. aktywność (lub brak aktywności) określonej nazwy pakietu aplikacji lub wyświetlanie (lub brak wyświetlania) określonego elementu na ekranie.
- Kontrole wykonywania, np. maksymalna liczba wykonań, priorytet, odpowiedni etap indeksowania.
- Nietypowe typy działań (warunkowe, ignorujące element, zamykające ekran).
Zalecamy używanie skryptów Robo, gdy tylko jest to możliwe, ponieważ można je łatwo utrzymywać. Za pomocą skryptu Robo możesz na przykład:
- Przejdź przez najważniejsze procesy, aby poznać główne funkcje aplikacji.
Możesz na przykład zalogować się, skonfigurować stan aplikacji po pierwszym uruchomieniu i zarejestrować nowego użytkownika.
- Skup narzędzie Robo na konkretnej części aplikacji, aby w pełni wykorzystać czas testu Robo. Skrypt Robo kieruje test Robo do odpowiedniej części aplikacji, w której test Robo wznawia w pełni zautomatyzowane indeksowanie.
- Uruchom aplikację w określonym stanie lub na określonym ekranie, aby przeprowadzić analizę, np. analizę wiadomości w aplikacji, polityki prywatności lub konkretnego poziomu gry.
- Przeprowadź kompleksowy test instrumentacji z użyciem testu Robo lub bez niego. Po zakończeniu skryptu Robo test zostanie wznowiony w pełni automatycznym trybie.
Korzystaj z bardziej zaawansowanych funkcji skryptu Robo, aby:
- wykonywać działania przed rozpoczęciem indeksowania testowanej aplikacji przez Robo lub po jego zakończeniu, np. czyścić dane testowanej aplikacji przed indeksowaniem lub zmieniać ustawienia urządzenia;
- zmieniać aspekty działania robota podczas indeksowania, w szczególności:
- sprawić, że Robo będzie ignorować niektóre widżety interfejsu lub ekrany aplikacji;
- Określ działanie niestandardowe, które Robo ma wykonać podczas cofania się z określonego ekranu.
- Spraw, aby test Robo wykonywał określone działania, gdy podczas indeksowania napotka konkretny ekran aplikacji.
- W pełni dostosuj sposób, w jaki Robo przeprowadza indeksowanie. Możesz na przykład użyć kombinacji działań warunkowych i bezwarunkowych, aby podczas indeksowania aplikacja poddawana testom działała w tle, a jednocześnie wykonywać manipulacje na urządzeniu i zamykać wszystkie wyskakujące okna dialogowe, które pojawią się w trakcie procesu.
Pamiętaj, że skrypty Robo nie zastępują wszystkich rodzajów testów. Nadal potrzebujesz testów jednostkowych, aby wykrywać błędy logiki niskiego poziomu w aplikacji. Te testy zwykle nie wymagają środowiska Androida ani iOS. Zalecamy uzupełnianie testów skryptów Robo ukierunkowanymi testami instrumentacyjnymi, które mogą zawierać szczegółowe asercje dotyczące logiki biznesowej, najlepiej wyrażone w kodzie.
Dalsze kroki
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-16 UTC.
[null,null,["Ostatnia aktualizacja: 2025-08-16 UTC."],[],[],null,["\u003cbr /\u003e\n\nThis document describes how to use *Robo scripts* , which are tests that automate\nmanual QA tasks for mobile apps, and enable continuous integration (CI) and\npre-launch testing strategies. For example, you can use Robo scripts to test a\ncommon user journey or provide specific user interface (UI) input, like a\nusername and password. Robo scripts are a feature of [Robo\ntest](/docs/test-lab/ios/robo-ux-test).\n\nRobo scripts use [Robo test](/docs/test-lab/android/robo-ux-test)\nas the test engine. In its most basic form, a Robo script consists of a\nsequence of UI actions like *enter text 'username'* and\nthen *tap the OK button* . Robo scripts can also include actions like waiting\nfor an element to appear, tapping at a specific point within an element, and\nexecuting Android Debug Bridge (`adb`) shell commands.\n\nRobo scripts have the following advantages over traditional testing frameworks:\n\n|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Capability** | **Description** |\n| Highly robust | Robo scripts can tolerate significant structural and behavioral differences between app versions and app flakiness. |\n| Open-ended | After a Robo script completes, the base Robo test can take over and continue testing the app. This continued testing approach enables several key use cases. For example, you can use a Robo script to bring an app into a particular state by performing a custom sign-in flow. |\n| Recordable | You don't need to code Robo scripts manually. They can be recorded using the Robo script recorder in Android Studio. Creating or modifying Robo scripts typically doesn't require any knowledge of mobile development. |\n| Flexible | Robo scripts can interact with non-native UI elements that are common in games. |\n\nRobo scripts are conditionally triggered during a Robo test, which lets users\naugment Robo's behavior - typically to achieve greater coverage or target\nspecific functionality. In contrast to traditional testing frameworks,\nRobo scripts support the following:\n\n- Various triggering conditions, for example, a particular app package name being active (or not) or a specific element being displayed on the screen (or not).\n- Execution controls, for example, a maximum number of executions, priority, relevant crawl stage.\n- Unconventional action types (conditional, element-ignoring, screen-closing).\n\nWe recommend that you use Robo scripts whenever possible because they can be\nmaintained effortlessly. For example, you can use a Robo script to do the\nfollowing:\n\n- Navigate significant workflows to get to the core of an app's functionality. For example, you can perform a sign-in, set up an app's state after the first launch, and register a new user.\n- Focus Robo on a particular part of an app to get the most out of Robo test time. Robo script guides Robo test to reach the relevant part of an app, where Robo test resumes a fully automated crawl.\n- Bring an app into a specific state or screen to perform an analysis, for example, to analyze an in-app message, privacy policy, or specific level of a game.\n- Perform an end-to-end instrumentation test, with or without Robo test resuming a fully automated crawl after the Robo script is complete.\n\nUse more advanced Robo script features to do the following:\n\n- Perform actions before Robo starts crawling the app-under-test or after a crawl is finished, for example, clean the app-under-test data before a crawl, or change device settings.\n- Change aspects of Robo behavior during a crawl, in particular:\n - Make Robo ignore some UI widgets or app screens.\n - Provide a custom action for Robo to perform when backtracking from a particular screen.\n - Make Robo perform specific actions whenever a particular app screen is encountered during a crawl.\n- Completely customize how Robo performs a crawl. For example, use a combination of conditional and non-conditional actions to keep the app-under-test in the background throughout the crawl, while performing device manipulations and dismissing any popup dialogs that appear along the way.\n\nKeep in mind that Robo scripts don't replace all kinds of tests. You still\nneed unit tests to catch low-level logic bugs in your app; these tests\ntypically don't require an Android or iOS environment. We recommend that you\nsupplement Robo script tests with targeted instrumentation tests that can have\nspecific, detailed assertions about business logic, which are best expressed\nin code.\n\nNext steps\n\n- To learn about Robo scripts structure, capabilities, usage, and actions, see\n the [Robo scripts reference guide](/docs/test-lab/android/robo-scripts-reference#ios-support-for-robo-scripts).\n\n- [Run a Robo test](/docs/test-lab/ios/robo-ux-test)."]]