The Monkey to program, który działa na emulator lub urządzenie i generuje pseudoprzypadkowe strumienie zdarzeń związanych z użytkownikiem, takich jak kliknięcia, dotknięcia czy gesty, a także szereg zdarzeń na poziomie systemu zdarzeń. Za pomocą programu Monkey możesz losowo testować swoje aplikacje w skrajnych okolicznościach ale nie do końca powtarzalny sposób.
Omówienie
Monkey to narzędzie wiersza poleceń, które możesz uruchomić w dowolnym emulatorze lub na urządzeniu. Wysyła pseudolosowy strumień zdarzeń użytkownika w systemie, które działają jak test stresogenny w miarę rozwoju działalności.
Gra Małpa obejmuje szereg opcji, ale można je podzielić na cztery główne kategorie:
- Podstawowe opcje konfiguracji, na przykład ustawianie próbnej liczby zdarzeń.
- ograniczenia operacyjne, na przykład ograniczenie testu do jednego pakietu;
- Typy i częstotliwość zdarzeń.
- Opcje debugowania.
Po uruchomieniu Małpka generuje zdarzenia i wysyła je do systemu. Dodatkowo zegarki testowany system szuka 3 warunków, które traktuje specjalnie:
- Jeśli małpa została uruchomiona w jednym lub kilku konkretnych pakietach, sprawdza, czy nie próbują przejść do innych pakietów, i je blokuje.
- Jeśli w Twojej aplikacji wystąpi jakikolwiek nieobsługiwany wyjątek, zostanie zatrzymany i zgłosić błąd.
- Jeśli aplikacja generuje błąd Aplikacja nie odpowiada, funkcja Małpa zostanie zatrzymany i zgłosić błąd.
W zależności od wybranego poziomu szczegółowości zobaczysz też raporty o postępach. i wygenerowanych zdarzeń.
Podstawowe zasady korzystania z małpy
Możesz uruchomić Monkey za pomocą wiersza poleceń na komputerze, na którym tworzysz aplikacje, lub ze skryptu.
Ponieważ aplikacja Monkey działa w emulatorze/środowisku urządzenia, musisz ją uruchomić z powłoki
tego środowiska. Możesz to zrobić, poprzedzając każde polecenie adb shell
,
lub przez wpisanie powłoki i bezpośrednie wpisanie poleceń Małpa.
Podstawowa składnia to:
$ adb shell monkey [options] <event-count>
Jeśli nie określisz żadnych opcji, Małpka uruchomi się w trybie cichym (niepełnym) i wyśle do wszystkich (lub wszystkich) pakietów zainstalowanych w miejscu docelowym. Oto bardziej typowy wiersz poleceń: który uruchomi aplikację i wyśle do niej 500 pseudolosowych zdarzeń:
$ adb shell monkey -p your.package.name -v 500
Dokumentacja opcji poleceń
Tabela poniżej zawiera wszystkie opcje, które można uwzględnić w wierszu poleceń Monkey.
Kategoria | Option | Opis |
---|---|---|
Ogólne | --help |
Drukuje prosty przewodnik. |
-v |
Każdy znak -v w wierszu poleceń zwiększa poziom szczegółowości. Poziom 0 (domyślny) zawiera niewiele informacji poza powiadomieniem o uruchomieniu testu, ukończeniem testu wyniki końcowe. Na poziomie 1 można uzyskać więcej informacji o prowadzonym teście, np. o poszczególnych zdarzeniach wysyłanych do Twoje działania. Poziom 2 zawiera bardziej szczegółowe informacje o konfiguracji, np. dotyczące wybranych lub niewybranych aktywności i testowania. | |
Wydarzenia | -s <seed> |
Wartość wyjściowa dla generatora pseudolosowych liczb. Jeśli uruchomisz ponownie grę małpę z tym samym nasionem spowoduje wygenerowanie tej samej sekwencji zdarzeń. |
--throttle <milliseconds> |
Wstawia stałe opóźnienie między zdarzeniami. Możesz użyć tej opcji, aby spowolnić małpę. Jeśli nie podasz żadnej wartości, nie wystąpi opóźnienie, a zdarzenia będą generowane najszybciej jak to możliwe. | |
--pct-touch <percent> |
Dostosuj odsetek zdarzeń dotknięcia. Zdarzenia dotknięcia to zdarzenia działające w jednym miejscu na ekranie. | |
--pct-motion <percent> |
Dostosuj odsetek zdarzeń ruchu. (Zdarzenia ruchu to zdarzenia związane z wyłączeniem ekranu, seria pseudoprzypadkowych zdarzeń ruchu i wydarzenia w górę). | |
--pct-trackball <percent> |
Dostosuj odsetek zdarzeń kulki. (zdarzenia kulki składają się z jednego lub wielu losowych ruchów, po których czasami następuje kliknięcie). | |
--pct-nav <percent> |
Dostosuj odsetek wartości „podstawowej” zdarzeń nawigacji. (Zdarzenia nawigacji składają się z klawiszy góra/dół/lewo/prawo, a dane wejściowe z urządzenia wejściowego kierunkowego). | |
--pct-majornav <percent> |
Dostosuj odsetek wartości „istotnych” zdarzeń nawigacji. (Są to zdarzenia nawigacji, które zwykle powodują działania w interfejsie, np. środkowy przycisk na padzie 5-kierunkowym, klawisz Wstecz lub klawisz menu). | |
--pct-syskeys <percent> |
Dostosuj wartość procentową „systemu” kluczowe zdarzenia. (Są to klucze, które są zasadniczo zarezerwowane do użytku przez system, np. Ekran główny, Wstecz, Rozpocznij połączenie, Zakończ połączenie lub Sterowanie głośnością). | |
--pct-appswitch <percent> |
Dostosuj procent uruchomień aktywności. W losowych odstępach czasu małpka wysyła wywołanie startActivity(), aby zmaksymalizować obejmują wszystkie aktywności dostępne w pakiecie. | |
--pct-anyevent <percent> |
Dostosuj odsetek zdarzeń innego typu. Jest to podsumowanie dla wszystkich innych typów zdarzeń, takich jak naciśnięcia klawiszy przyciski na urządzeniu itd. | |
Ograniczenia | -p <allowed-package-name> |
Jeśli określisz w ten sposób co najmniej jeden pakiet, Monkey zezwoli na dostęp tylko do systemu. aby zobaczyć atrakcje dostępne w tych pakietach. Jeśli Twoja aplikacja wymaga dostępu do aktywności w w przypadku innych przesyłek (np. aby wybrać kontakt), musisz także określić te przesyłki. Jeśli nie określisz żadnych pakietów, funkcja Monkey zezwoli systemowi na uruchamianie działań we wszystkich pakietach. Aby określić wiele pakietów, użyj wielokrotnie opcji -p – jeden -p na pakiet. |
-c <main-category> |
Jeśli w ten sposób określisz co najmniej jedną kategorię, funkcja Monkey zezwoli na ruch tylko system, by wyświetlić działania należące do jednej z określonych kategorii. Jeśli nie określisz żadnej kategorii, Małpka wybierze jedną z wymienionych na niej aktywności Intencja.CATEGORY_LAUNCHER lub Intent.CATEGORY_MONKEY. Aby określić wiele kategorii, użyj opcji -c. tę opcję wielokrotnie – po jednej opcji -c w każdej kategorii. | |
Debugowanie | --dbg-no-events |
Po określeniu tej wartości małpka przeprowadza pierwsze uruchomienie w działaniu testowym, ale nie będzie generować żadnych kolejnych zdarzeń. Aby uzyskać najlepsze wyniki, połącz z -v, co najmniej jednym ograniczeniem pakietu i ograniczeniem niezerowym, aby utrzymać małpę. co najmniej 30 sekund. Zapewni to środowisko, w którym możesz monitorować pakiet przejścia wywołane przez Twoją aplikację. |
--hprof |
Jeśli jest ustawiona, ta opcja spowoduje generowanie raportów profilowania tuż przed małpą i po niej. sekwencji zdarzeń. Spowoduje to wygenerowanie dużych (ok. 5 MB) plików danych/różnych, więc zachowaj ostrożność. Dla: informacje na temat analizowania raportów o profilowaniu można znaleźć w artykule Profilowanie aplikacji skuteczności reklam. | |
--ignore-crashes |
Normalnie działanie Małpki zatrzymuje się po awarii aplikacji lub narażeniu na jakiekolwiek nieobsługiwany wyjątek. Jeśli wybierzesz tę opcję, Małpka będzie nadal wysyłać zdarzenia do w systemie aż do zakończenia liczenia. | |
--ignore-timeouts |
Normalnie działanie Małpa zatrzymuje się, gdy w aplikacji wystąpi jakikolwiek błąd przekroczenia limitu czasu, taki jak z komunikatem „Application Not Responding” (Aplikacja nie odpowiada). . Jeśli wybierzesz tę opcję, Małpa będzie nadal wysyłaj zdarzenia do systemu, dopóki ich liczenie nie zostanie ukończone. | |
--ignore-security-exceptions |
Normalnie działanie Małpa zatrzymuje się, gdy w aplikacji wystąpi jakiś błąd uprawnień, na przykład gdy próbuje uruchomić działanie, które wymaga pewnych uprawnień. Jeśli określisz Jeśli wybierzesz tę opcję, małpa będzie nadal wysyłać zdarzenia do systemu, dopóki licznik nie . | |
--kill-process-after-error |
Zwykle, gdy małpka zatrzymuje się z powodu błędu, aplikacja, która nie została odrzucona, nie zostaje przerwana. w domu. Gdy ta opcja jest ustawiona, zasygnalizuje systemowi, że ma zakończyć proces, w którym wystąpił błąd. . Pamiętaj, że w przypadku normalnego (udanego) zakończenia uruchomione procesy nie są zatrzymywane. urządzenie pozostaje w ostatnim stanie po wystąpieniu zdarzenia końcowego. | |
--monitor-native-crashes |
Wykrywanie i zgłaszanie awarii występujących w natywnym kodzie systemu Android. Jeśli zostanie ustawiony parametr --kill-process-after-error, system zostanie zatrzymany. | |
--wait-dbg |
Zatrzymuje wykonywanie działania Małpy do czasu podłączenia debugera. |