Firebase Test Lab is deprecated and will be fully shut down on September 30, 2027. To
maintain your testing workflows, you can migrate to the Developer Device Platform on Google
Cloud. See the
Developer Device Platform Migration Guide
and FAQ for more
details.
Google używa technologii AI do tłumaczenia treści na Twój preferowany język. Tłumaczenia wygenerowane przez AI mogą zawierać błędy.
Rozwiązywanie problemów z Laboratorium Najczęstsze pytania
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Na tej stronie znajdziesz pomoc w rozwiązywaniu problemów i odpowiedzi na najczęstsze pytania dotyczące przeprowadzania testów za pomocą Firebase Test Lab. Znane problemy są również udokumentowane. Jeśli nie możesz znaleźć tego, czego szukasz, lub potrzebujesz dodatkowej pomocy, dołącz do kanału #test-lab na Firebase Slack lub skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów
Dlaczego test trwa tak długo?
Gdy wybierzesz urządzenie o wysokim poziomie pojemności w katalogu Test Lab, testy mogą rozpocząć się szybciej. Jeśli urządzenie ma małą pojemność, testy mogą potrwać dłużej. Jeśli liczba wywołanych testów jest znacznie większa niż pojemność wybranych urządzeń, testy mogą potrwać dłużej.
Testy przeprowadzane na urządzeniach o dowolnym poziomie dostępności mogą trwać dłużej z powodu tych czynników:
ruch, który wpływa na dostępność urządzeń i szybkość testu;
awarie urządzeń lub infrastruktury, które mogą wystąpić w dowolnym momencie; Aby sprawdzić, czy zgłoszono problem z infrastrukturą Test Lab, otwórz panel stanu Firebase.
Więcej informacji o pojemności urządzenia w Test Lab znajdziesz w sekcji dotyczącej Androida i iOS.
Dlaczego otrzymuję niejednoznaczne wyniki testów?
Niejednoznaczne wyniki testów są zwykle spowodowane anulowaniem testów lub błędami infrastruktury.
Błędy infrastruktury są spowodowane wewnętrznymi problemami z Test Lab, takimi jak błędy sieci lub nieoczekiwane zachowania urządzenia. Test Lab wewnętrznie ponawia testy, które wielokrotnie powodują błędy infrastruktury, zanim zgłosi niejednoznaczny wynik. Możesz jednak wyłączyć te ponowne próby, używając opcji failFast.
Aby ustalić przyczynę błędu, wykonaj te czynności:
Sprawdź, czy w Panelu stanu Firebase nie ma informacji o znanych przerwach w działaniu usługi.
Ponów test w Test Lab, aby sprawdzić, czy problem jest powtarzalny.
Spróbuj przeprowadzić test na innym urządzeniu lub typie urządzenia, jeśli to możliwe.
Jeśli problem będzie się powtarzał, skontaktuj się z zespołem Test Lab na kanale#test-lab w Firebase Slack.
Dlaczego po zastosowaniu fragmentacji testy trwają dłużej?
Fragmentacja może wydłużyć czas wykonywania testów, jeśli określona liczba fragmentów przekracza liczbę urządzeń dostępnych do użycia w usłudze Test Lab. Aby uniknąć tej sytuacji, spróbuj przełączyć się na inne urządzenie. Więcej informacji o wybieraniu innego urządzenia znajdziesz w sekcji
Pojemność urządzenia.
Dlaczego rozpoczęcie testu trwa tak długo?
Gdy przesyłasz żądanie testu, aplikacja jest najpierw weryfikowana, ponownie podpisywana itp. w ramach przygotowań do przeprowadzenia testów na urządzeniu. Zwykle ten proces trwa kilka sekund, ale może na niego wpływać np. rozmiar aplikacji.
Po przygotowaniu aplikacji wykonania testów są planowane i pozostają w kolejce, dopóki urządzenie nie będzie gotowe do ich uruchomienia. Dopóki nie zakończą się wszystkie wykonania testu, stan macierzy będzie „Oczekujący” (niezależnie od tego, czy wykonania testu są w kolejce, czy są aktywnie uruchomione).
Dlaczego test trwa tak długo?
Po zakończeniu wykonywania testu artefakty testowe są pobierane z urządzenia, przetwarzane i przesyłane do Cloud Storage. Na czas trwania tego kroku może mieć wpływ ilość i rozmiar artefaktów.
Rozwiązywanie problemów na Androidzie
Aplikacja nie zwraca danych i nie może znaleźć zrzutów ekranu
Artefakty wykonania testu (takie jak zrzuty ekranu i pliki dziennika) są przechowywane w Google Cloud Storage i renderowane bezpośrednio w konsoli Firebase. Jeśli wykonanie testu miało miejsce w ciągu ostatnich 90 dni, sprawdź, czy masz przypisane role na poziomie projektu (właściciel projektu, edytujący projekt lub wyświetlający projekt).
Upewnij się też, że w Twoim projekcie lub organizacji nie jest włączone logowanie kontrolne Cloud.
Jeśli wykonanie miało miejsce ponad 90 dni temu, artefakty testowe zostały najprawdopodobniej automatycznie usunięte. Konfigurację zasobnika wyników możesz sprawdzić, klikając kartę Wyniki testu w panelu Test Lab. Domyślny zasobnik wyników jest skonfigurowany tak, aby przechowywać obiekty przez 90 dni.
Aby zachować artefakty testowe na dłużej, uruchom polecenie gcloud firebase test android run z flagą --results-bucket i podaj nazwę zasobnika wyników. Więcej informacji znajdziesz w dokumentacji referencyjnej gcloud firebase test android run.
Dlaczego otrzymuję częściowe lub brakujące wyniki elementów testowania z instrumentacją?
Podczas przeprowadzania testów z instrumentacją mogą pojawić się błędy testu wskazujące na częściowe wyniki, które zawierają komunikat taki jak Test run failed to complete. Expected
x tests, received y (gdzie y jest mniejsze niż x). Ten błąd oznacza, że usługa Test Lab nie mogła przeanalizować logcat pod kątem znaczników początku lub końca elementu testowania, które są zwykle generowane przez AndroidJUnitRunner.
Oto najczęstsze przyczyny tego problemu:
Opis problemu
Możliwe rozwiązanie
Element testowania nie został uruchomiony z powodu przekroczenia limitu czasu. Jeśli łączny czas trwania testów jest dłuższy niż określony przez Ciebie limit czasu lub dłuższy niż maksymalny limit czasu, Test Lab anuluje pozostałe elementy testowania.
Zwiększ limit czasu dla macierzy, aby mieć pewność, że wszystkie testy zostaną ukończone.
Jeśli jeszcze nie masz podzielonych testów, podziel je, aby każdy fragment uruchamiał podzbiór testów i kończył się w krótszym czasie.
Jeśli fragmentowanie jest już włączone, zwiększ liczbę fragmentów.
Nie udało się ukończyć elementu testowania, ponieważ został przedwcześnie zamknięty lub się zawiesił.
Element testowania może zakończyć się przedwcześnie z powodu nieprzechwyconego wyjątku lub błędu asercji. Elementy testowania mogą utknąć w nieskończonej pętli lub nie być w stanie kontynuować działania, np. jeśli aplikacja nie wyświetla prawidłowego widoku, a element testowania nie może wykonać działania w interfejsie.
Sprawdź film i logcat, aby dowiedzieć się, gdzie test został zatrzymany.
Niestandardowy moduł uruchamiający testy (w tym rozszerzający AndroidJUnitRunner) nieoczekiwanie uległ awarii lub zapisał nieoczekiwane znaczniki rozpoczęcia lub zakończenia elementu testowania w pliku logcat.
Sprawdź kod modułu uruchamiającego testy.
Do logcat zapisano zbyt wiele logów, co spowodowało przepełnienie bufora lub awarię procesu logcat.
Zmniejsz liczbę zapisów do logcat.
Testowana aplikacja uległa awarii.
Debugowanie aplikacji.
Najczęstsze pytania
Jakie są bezpłatne limity w przypadku Test Lab? Co zrobić, jeśli mi się skończą?
Firebase Test Lab oferuje bezpłatne limity na testowanie na urządzeniach i korzystanie z interfejsów Cloud API. Pamiętaj, że limit testowy korzysta ze standardowego abonamentu Firebase, a limity interfejsu Cloud API – nie.
Limit testowy
Limity testowania są określane na podstawie liczby urządzeń używanych do przeprowadzania testów.
Abonament Firebase Spark ma stały limit testów, który jest bezpłatny dla użytkowników. W przypadku abonamentu Blaze limity mogą wzrosnąć, jeśli z czasem zwiększy się wykorzystanie Google Cloud. Jeśli osiągniesz limit testów, poczekaj do następnego dnia lub przejdź na abonament Blaze, jeśli obecnie korzystasz z abonamentu Spark.
Jeśli korzystasz już z abonamentu Blaze, możesz poprosić o zwiększenie limitu.
Więcej informacji znajdziesz w artykule o limicie testowania.
Cloud Testing API ma 2 limity: żądań dziennie na projekt i żądań na 100 sekund na projekt. Możesz monitorować wykorzystanie w konsoli Google Cloud.
Limit interfejsu Cloud Tool Results API
Interfejs Cloud Tool Results API ma 2 limity: zapytań dziennie na projekt i zapytań co 100 sekund na projekt. Możesz monitorować wykorzystanie w konsoli Google Cloud.
Prześlij prośbę o zwiększenie limitów, edytując je bezpośrednio w konsoli Google Cloud (pamiętaj, że większość limitów jest domyślnie ustawiona na maksimum).
Aby poprosić o zwiększenie limitów interfejsu API, wypełnij formularz prośby w konsoli Google Cloud lub skontaktuj się z zespołem pomocy Firebase.
Jak sprawdzić, czy ruch docierający do mojego backendu pochodzi z Test Lab?
Z poziomu backendu możesz określić, czy ruch pochodzi z urządzeń testowych hostowanych przez Firebase, sprawdzając źródłowy adres IP pod kątem naszych zakresów adresów IP.
Czy Test Lab działa z VPC-SC?
Test Lab nie działa z VPC-SC, co blokuje kopiowanie aplikacji i innych artefaktów testowych między pamięcią wewnętrzną Test Lab a zasobnikami wyników użytkowników.
Jak wykryć testy z niepewnym wynikiem w Test Lab?
Aby wykryć niepewne wyniki w testach, zalecamy użycie opcji
--num-flaky-test-attempts
. Ponowne uruchomienia w celu usunięcia niestabilności są rozliczane lub wliczane do dziennego limitu tak samo jak normalne wykonania testów.
Pamiętaj:
Po wykryciu błędu całe wykonanie testu jest uruchamiane ponownie. Nie ma możliwości ponownego uruchamiania tylko nieudanych elementów testowania.
Ponowne uruchomienia w celu usunięcia niestabilności są zaplanowane na ten sam czas, ale nie ma gwarancji, że będą działać równolegle, np. gdy ruch przekracza liczbę dostępnych urządzeń.
Najczęstsze pytania dotyczące systemu iOS
Czy Test Lab obsługuje Appium, Flutter/FlutterDriver, ReactNative/Jest lub Cucumber?
Niektóre z tych elementów są w naszych planach, ale obecnie nie możemy zagwarantować, że będziemy obsługiwać te platformy do testowania i tworzenia aplikacji.
Gdzie znajdę szczegółowe informacje o urządzeniu, takie jak rozdzielczość?
Szczegółowe informacje o urządzeniu są dostępne przez interfejs API i można je uzyskać z klienta gcloud za pomocą polecenia describe:
gcloud firebase test ios models describe MODEL
Czy mogę używać fragmentowania w testach na iOS?
Fragmentowanie nie jest natywnie obsługiwane w Test Lab na iOS. Możesz jednak użyć klienta Flank do fragmentowania elementów testowania na iOS.
W tym celu ustaw klucz i wartości OnlyTestIdentifiers w pliku .xctestrun.
Więcej informacji znajdziesz na stronie man dotyczącej xcodebuild.xctestrun.
Dlaczego w wynikach testu na iOS brakuje filmów?
W przypadku systemu iOS 18 lub nowszego nie możemy obsługiwać filmów w wynikach.
Najczęstsze pytania dotyczące Androida
Czy Test Lab obsługuje urządzenia do noszenia?
Tak. Test Lab obsługuje Google Pixel Watch. Teraz możesz przeprowadzać testy samodzielnej aplikacji na Wear na zegarkach Google Pixel Watch. Więcej informacji o urządzeniach Test Lab znajdziesz w artykule Testowanie na dostępnych urządzeniach.
Czy Test Lab obsługuje najnowsze urządzenia Google?
Tak. Test Lab obsługuje urządzenia Google Pixel Tablet i Google Pixel Fold. Możesz przeprowadzać testy na samodzielnych urządzeniach fizycznych.
Więcej informacji o urządzeniach Test Lab znajdziesz w artykule Testowanie na dostępnych urządzeniach.
Jak wykryć uruchomiony test w Test Lab?
Jeśli testujesz aplikację w Firebase lub przeprowadzasz testy na potrzeby raportu przed opublikowaniem w Konsoli Play, możesz sprawdzić, czy test jest przeprowadzany na urządzeniu hostowanym w Firebase, sprawdzając właściwość systemową firebase.test.lab w pliku MainActivity. Następnie możesz wykonać dodatkowe instrukcje na podstawie wartości logicznej zmiennej testLabSetting. Więcej informacji znajdziesz w artykule o zmodyfikowanych zachowaniach testowych.
Czy Test Lab obsługuje Appium, Flutter/FlutterDriver, ReactNative/Jest lub Cucumber?
Niektóre z tych elementów są w naszych planach, ale obecnie nie możemy zagwarantować, że będziemy obsługiwać te platformy do testowania i tworzenia aplikacji. Jeśli jednak aplikacja została utworzona za pomocą platformy obsługującej Espresso (np. Flutter), możesz napisać test z instrumentacją za pomocą Espresso, a następnie uruchomić go w Test Lab.
Czy Test Lab obsługuje testowanie zaciemnionych aplikacji, np. za pomocą ProGuard lub R8?
Test Lab nie obsługuje bezpośrednio zaciemniania kodu ani usuwania zaciemnienia kodu. Aplikacja prawdopodobnie będzie działać, ale wszystkie zaciemnione dane aplikacji, takie jak zrzuty stosu, będą widoczne w dziennikach jako zaciemnione.
Czy podczas testowania na platformie Test Lab mogę używać składanego urządzenia w różnych stanach i pozycjach?
Urządzenia składane mogą być w różnych stanach złożenia, np. FLAT (całkowicie otwarte) lub HALF_OPENED (pomiędzy całkowicie otwartym a całkowicie zamkniętym).
Z kolei pozycje składają się z określonej orientacji urządzenia i stanu złożenia. Na przykład tryb stołu, który jest stanem HALF_OPENED w orientacji poziomej, lub tryb książki, który jest stanem HALF_OPENED w orientacji pionowej.
Czy mogę wypróbować Test Lab, jeśli nie mam aplikacji?
W przeciwieństwie do innych usług Firebase nie musisz dodawać pakietu SDK Firebase, aby korzystać z Test Lab. Jeśli nie masz jeszcze aplikacji, możesz pobrać plik APK online lub utworzyć aplikację i testowy plik APK na podstawie jednego z przykładów w repozytorium AndroidX na GitHubie.
Pamiętaj, że do przeprowadzenia testu Robo potrzebujesz tylko pliku APK aplikacji, natomiast test z instrumentacją wymaga zarówno pliku APK aplikacji, jak i pliku APK testu, które są tworzone na podstawie kodu źródłowego. Więcej informacji znajdziesz w artykule o testach instrumentowanych.
Jakie urządzenia najlepiej nadają się do testowania różnic między zrzutami ekranu?
Testowanie różnic między zrzutami ekranu polega na tym, że asercje testowe są oparte na porównywaniu obrazów ekranu uzyskanych podczas testu z obrazami wzorcowymi, które przedstawiają oczekiwane działanie. Takie testy mogą być bardziej zawodne na niektórych typach urządzeń. W przypadku tego rodzaju testów zalecamy kierowanie na emulatory urządzeń z procesorami Arm (*.arm). Urządzenia z emulatorem ARM używają obrazów, które są bardzo podobne lub identyczne z „ogólnymi” emulatorami Android Studio.
Zalecamy też zapoznanie się z bibliotekami testowymi, które mogą pomóc w zwiększeniu niezawodności testów zrzutów ekranu w przypadku oczekiwanych zmian.
Czy Test Lab aktualizuje urządzenia wirtualne?
Tak. Urządzenia wirtualne są aktualizowane, gdy zostaną wprowadzone te zmiany:
Aktualizacje dotychczasowych obrazów
Wycofanie wcześniejszych poziomów interfejsu API
Dodano nowe poziomy interfejsu API Androida
Jak włączyć raporty o pokryciu?
Aby włączyć raporty o zasięgu, dodaj coverage=true do pola environmentVariables.
Jeśli używasz narzędzia Android Test Orchestrator, musisz podać katalog, w którym będą przechowywane wyniki pokrycia:
Gdzie znajdę szczegółowe informacje o urządzeniu, takie jak rozdzielczość, obsługiwane interfejsy ABI itp.?
Szczegółowe informacje o urządzeniu są dostępne przez interfejs API i można je uzyskać z klienta gcloud za pomocą polecenia describe:
gcloud firebase test android models describe MODEL
Jak zalogować się w aplikacji na Wear bez telefonu?
Jeśli Twoja aplikacja obsługuje logowanie przez Google, powinno to działać automatycznie z kontem testowym. Jeśli aplikacja zwykle wymaga telefonu do zalogowania się, możesz utworzyć wariant kompilacji, który pomija logowanie i używa tokena umieszczonego w kompilacji testowej lub odczytanego z plików na dysku, zwykle przesyłanych za pomocą --other-files option. Więcej informacji znajdziesz w artykule Niestandardowe logowanie i wprowadzanie tekstu w testach Robo.
Znane problemy
testy CAPTCHA podczas logowania,
Test Robo nie może pominąć ekranów logowania, które wymagają dodatkowych działań użytkownika poza wpisaniem danych logowania, np. wypełnienia testu CAPTCHA.
Znane problemy dotyczące iOS
Logowanie automatyczne
Automatyczne logowanie się za pomocą konta Google nie jest obsługiwane w testach Robo na iOS+ (beta).
Znane problemy dotyczące Androida
Obsługa platformy UI
Test Robo działa najlepiej w przypadku aplikacji, które używają elementów interfejsu z platformy interfejsu Androida (w tym obiektów View, ViewGroup i WebView). Jeśli używasz testu Robo do testowania aplikacji, które korzystają z innych platform interfejsu, w tym aplikacji korzystających z silnika gry Unity, test może zakończyć się bez przechodzenia poza pierwszy ekran.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2026-10-16 UTC."],[],[]]