Analizowanie wyników Laboratorium Firebase

Testy aplikacji na Androida możesz uruchamiać na wiele sposobów, m.in. za pomocą interfejsu wiersza poleceń, Androida Studio, interfejsu Test Lab w konsoli Firebase oraz interfejsu Testing API.Firebase Test Lab Niezależnie od tego, jak rozpoczniesz testy, wyniki będą przechowywane w określonym przez Ciebie projekcie w Firebase. Oprócz wymienionych wyżej narzędzi możesz też analizować wyniki za pomocą interfejsu ToolResults API. Na tej stronie dowiesz się, jak sprawdzać i analizować wyniki testów.

Kluczowe pojęcia

W Firebase konsoli możesz wyświetlić wyniki wszystkich poprzednich uruchomień testów, klikając DevOps i zaangażowanie > Laboratorium. Na tej stronie wyświetlają się wszystkie szczegółowe wyniki testów aplikacji, które zostały przetestowane w ramach Twojego projektu za pomocą Test Lab.

Aby sprawdzić wyniki testu, musisz najpierw poznać 3 pojęcia:

Gdy uruchomisz test lub zestaw przypadków testowych na wybranych urządzeniach i konfiguracjach, Test Lab przeprowadzi test na Twojej aplikacji w partii, a następnie wyświetli wyniki w postaci macierzy testowej.

Urządzenia × wykonania testów = macierz testów

Urządzenie
Urządzenie fizyczne lub wirtualne (tylko Android), na którym przeprowadzasz test, np. telefon, tablet lub urządzenie do noszenia. Urządzenia w macierzy testowej są identyfikowane na podstawie modelu urządzenia, wersji systemu operacyjnego, orientacji ekranu i ustawień regionalnych (znanych też jako ustawienia geograficzne i językowe).
Test, wykonanie testu
Test (lub zestaw przypadków testowych) do uruchomienia na urządzeniu. Możesz przeprowadzić 1 test na urządzenie lub opcjonalnie podzielić test na części i uruchomić jego przypadki testowe na różnych urządzeniach.
Zestaw testów
Zawiera stany i wyniki testów. Jeśli którekolwiek wykonanie testu w macierzy zakończy się niepowodzeniem, cała macierz zakończy się niepowodzeniem.

W sekcjach poniżej znajdziesz informacje o tym, jak poruszać się po wynikach testu.

Interpretowanie wyników historii testów

Gdy przejdziesz do wyników testu, klikając Test Lab, zobaczysz wyniki przeprowadzonych do tej pory testów.

Historia testów jest pogrupowana według aplikacji. W przypadku każdej aplikacji wyświetlanych jest tylko 5 ostatnich macierzy testowych. Jeśli jest ich więcej, możesz kliknąć link Wszystkie macierze u dołu listy testów aplikacji, aby wyświetlić pełną listę dla danej aplikacji.

Interpretowanie wyników zestawu testów

Gdy rozpoczniesz test w Test Labinterfejsie, przekierujemy Cię na stronę, na której możesz zobaczyć zestaw testów i kliknąć konkretne wykonanie testu, aby wyświetlić wyniki. Android Studio i polecenie gcloud też podają adres URL strony wyników zestawu testów.

W typowym zestawie testów możesz przeprowadzić test na kilkunastu różnych urządzeniach. Każde wykonanie testu może dać inny wynik. Możliwe wyniki każdego wykonania testu w zestawie testów to:

  • Wynik pozytywny Test zaliczony: nie napotkano żadnych błędów.
  • Niepowodzenie Test zakończony niepowodzeniem: wystąpił co najmniej 1 błąd.
  • Niejednoznaczne Test zaliczony: wyniki testu były niejednoznaczne, prawdopodobnie z powodu Test Lab błędu.
  • Pominięto Test zaliczony: wybrane wartości wymiarów w przypadku niektórych wykonań testów w macierzy były niezgodne. Ten komunikat pojawia się, gdy wybrane urządzenia są niezgodne z co najmniej 1 wybranym poziomem interfejsu API Androida.

Aby sprawdzić zagregowane wyniki testów wszystkich zestawów testów w przypadku danej aplikacji w projekcie w Firebase, kliknij nazwę aplikacji, jak pokazano w tym przykładzie:

Przykładowa strona wyników zestawu testów z tylko 4 wykonaniami testów Wyniki macierzy testów

Spowoduje to przejście do listy zestawów testów dla Twojej aplikacji. Możesz na niej kliknąć nazwę dowolnego zestawu testów, aby zobaczyć jego wyniki, lub kliknąć nazwę aplikacji (widoczną w czerwonym polu poniżej), aby wyświetlić listę zestawów testów dla innych aplikacji powiązanych z Twoim projektem w Firebase.

Przykładowa strona z listą zestawów testów Lista macierzy testów

Zestaw testów może zakończyć się powodzeniem, niepowodzeniem lub być niejednoznaczny. Macierz testów jest oznaczana jako nieudana lub niejednoznaczna, jeśli którekolwiek wykonanie testu w tej macierzy zakończy się niepowodzeniem lub jest niejednoznaczne.

Interpretowanie wyników testu Robo

Jeśli testy zostały przeprowadzone za pomocą Robo, wyniki obejmują filmy i zrzuty ekranu przedstawiające Robo podczas indeksowania interfejsu, a także zwykłe dane testowe. Te filmy i zrzuty ekranu zawierają wizualne wskazówki dotyczące działań, które Robo wykonał podczas indeksowania, podobne do funkcji „Pokaż dotknięcia” na Androidzie. Wskazówki pomogą Ci śledzić postępy Robo i odtworzyć wszelkie błędy, które może wykryć.

Przykładowy film z wynikami testu Robo

Wyniki testu Robo

Interpretowanie wyników pojedynczego wykonania testu

Na stronie wyników zestawu testów kliknij jedno z wykonań testu, aby wyświetlić wynik tego konkretnego wykonania testu.

Przykładowa strona wyników wykonania testu Wyniki wykonania testu

Na tej stronie możesz zobaczyć czas potrzebny na wykonanie każdego testu. Możesz też wyświetlać wyniki poszczególnych przypadków testowych, które odpowiadają metodom w pliku APK testu (w przypadku testów instrumentacyjnych), oraz szczegółowe wyniki testów, w tym dzienniki testów, zrzuty ekranu i filmy. W przypadku testu Robo szczegółowe wyniki testu zawierają też mapę aktywności, która graficznie pokazuje ścieżki interfejsu, które zostały odwiedzone przez test Robo.

Wyniki testu z instrumentacją podzielone na partycje

Aby ułatwić Ci interpretację wyników testów z instrumentacją, Test Lab dzieli każdy test na osobną stronę szczegółowego raportu, zawierającą zrzuty stosu, logi i filmy. Ta funkcja działa niezależnie od tego, czy używasz Android Orchestrator.

Przykładowa strona wyników testu Wyniki testu

Interpretowanie wyników dotyczących ułatwień dostępu

Testy Robo korzystają z Accessibility Scanner na Androida, aby wykrywać problemy z dostępnością w aplikacji (pamiętaj, że skanowanie możesz też przeprowadzić lokalnie na urządzeniu). Instrukcje sprawdzania i interpretowania wyników testu Robo dotyczących ułatwień dostępu znajdziesz w artykule Wprowadzenie do Accessibility Scanner.

Ogólne informacje o tym, jak zwiększyć dostępność aplikacji, znajdziesz w dokumentacji ułatwień dostępu dla deweloperów aplikacji na Androida.

Wskaźniki dotyczące skuteczności

Testy przeprowadzane na urządzeniach fizycznych zwracają też dane o skuteczności:

WskaźnikWymagana konfiguracja urządzenia
Czas uruchamiania aplikacjiAPI 19+
Wykorzystanie procesoraAPI 21+
Wykorzystanie pamięci
Aktywność sieciowa
Klatki na sekundęAPI w wersji 21 lub nowszej, który zawiera SurfaceView

Szczegółowe wyniki testu

Szczegółowe wyniki testu są dostępne przez 90 dni od jego przeprowadzenia i przechowywane w zasobniku Google Cloud Storage (ale są też widoczne w konsoli Firebase). Szczegółowe wyniki testów możesz wyświetlić w Cloud Storage po kliknięciu Wyniki testów na stronie wyników wykonania testu. Gdy szczegółowe wyniki testu nie są już dostępne, nadal możesz sprawdzić, które testy zostały zaliczone, a które nie.

Jeśli chcesz przechowywać szczegółowe wyniki testów dłużej niż 90 dni, możesz wysłać je do Cloud Storagezasobnika, którego jesteś właścicielem, za pomocą opcji wiersza poleceń gcloud --results-bucket. Następnie możesz ustawić opcję Wiek, aby określić, jak długo wyniki będą przechowywane w zasobniku Cloud Storage. Więcej informacji o tym, jak zmienić ustawienie Wiek, znajdziesz w sekcji Warunki cyklu życia.

Jeśli podczas przeprowadzania testu pojawi się błąd does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist).., podmiot wykonujący test może nie mieć odpowiednich uprawnień w projekcie. Domyślnie Firebase tworzy dla Ciebie zasobnik w Google Cloud Storage, ale wymaga, aby podmiot wykonujący test miał rolę „roles/editor”, która jest rolą o szerokich uprawnieniach. Jeśli nie możesz przypisać tej roli do podmiotu, możesz użyć opcji wiersza poleceń gcloud --results-bucket.