Rozwiązywanie problemów z Laboratorium Najczęstsze pytania
Na tej stronie znajdziesz pomoc w rozwiązywaniu problemów i odpowiedzi na najczęstsze pytania
Pytania dotyczące przeprowadzania testów z wykorzystaniem narzędzia 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 Slacku Firebase lub skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów
Dlaczego test trwa tak długo?
Gdy wybierzesz urządzenie z dużą pojemnością, Test Lab
testy mogą rozpocząć się szybciej. Jeśli urządzenie ma małą pojemność, testy mogą potrwać dłużej. Jeśli liczba
Liczba wywołanych testów jest znacznie większa niż pojemność wybranych urządzeń,
może potrwać dłużej.
Testy na dowolnym poziomie wydajności urządzenia mogą potrwać dłużej ze względu na:
następujące czynniki:
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ć
jeśli dla instancji Test Lab istnieje zgłoszona infrastruktura, zapoznaj się z
Panel stanu Firebase.
Aby dowiedzieć się więcej o pojemności urządzeń w: Test Lab, zobacz pojemność urządzenia
na Androida i iOS.
Dlaczego otrzymuję niejednoznaczne wyniki testu?
Niejednoznaczne wyniki testów występują zwykle z powodu anulowania uruchomień testów lub błędów infrastruktury.
Błędy infrastruktury są powodowane przez wewnętrzne problemy Test Lab, takie jak sieć
lub nieoczekiwane działanie urządzeń. Test Lab wycofuje wewnętrznie uruchomienia testów
które wielokrotnie powodują błędy infrastruktury przed zgłoszeniem
niejednoznaczny wynik; możesz jednak wyłączyć ponowne próby, używając
failFast.
Aby określić przyczynę błędu, wykonaj te czynności:
Ponów test w Test Lab, by sprawdzić, czy da się go odtworzyć.
W razie potrzeby spróbuj przeprowadzić test na innym urządzeniu lub urządzeniu.
Jeśli problem będzie się powtarzał, skontaktuj się z zespołem Test Lab na
kanał#test-lab jest włączony
Slack Firebase.
Dlaczego po podzieleniu na fragmenty testy trwały dłużej?
Fragmentacja może wydłużyć czas wykonywania testów, jeśli podana liczba fragmentów przekracza liczbę urządzeń dostępnych do użycia w Test Lab. Do
uniknąć takiej sytuacji, spróbuj zmienić urządzenie. Więcej informacji na temat konfiguracji
na temat wyboru innego urządzenia, zobacz
Pojemność urządzenia.
Dlaczego trwa to zbyt długo?
do testów?
Gdy prześlesz prośbę o test, Twoja aplikacja zostanie najpierw zweryfikowana, ponownie podpisana itp.
w ramach przygotowań do testów na urządzeniu. Proces ten kończy się zwykle
w czasie krótszym niż kilka sekund, ale zależy od czynników takich jak rozmiar
.
Gdy aplikacja jest gotowa, testy są planowane i pozostają w kolejce do momentu, aż urządzenie będzie gotowe do ich uruchomienia. Dopóki nie zakończą się wszystkie testy,
macierz ma stan „Oczekująca”. (niezależnie od tego, czy uruchomienia testu
w kolejce lub aktywnie uruchomionych).
Dlaczego trwa to zbyt długo?
aby ją dokończyć?
Po zakończeniu testu artefakty są pobierane z
na urządzeniu, przetworzone i przesłane do Cloud Storage. Czas trwania tego kroku może
liczbę i rozmiar artefaktów.
Aplikacja nie zwraca danych i nie może znaleźć zrzutów ekranu
Elementy wykonania testu (np. zrzuty ekranu i pliki dziennika) są przechowywane w Google Cloud Storage i wyświetlane bezpośrednio w konsoli Firebase. Jeśli
Test został wykonany w ciągu ostatnich 90 dni, sprawdź, czy
przypisane role na poziomie projektu (właściciel projektu, edytujący projekt lub wyświetlający projekt).
Sprawdź też, czy w projekcie nie włączono Cloud Audit Logging
lub organizacji.
Jeśli wykonanie zostało wykonane ponad 90 dni temu, większość
prawdopodobnie artefakty testowe zostały automatycznie usunięte. Informacje na temat
konfiguracji zasobnika z wynikami, klikając kartę Wyniki testu w
Panel Test Lab. Domyślny wynik
skonfigurowano zasobnik do przechowywania obiektów przez 90 dni.
Aby dłużej przechowywać artefakty testowe, uruchom polecenie
gcloud firebase test android run z flagą --results-bucket i podamy
nazwę zasobnika wyników. Więcej informacji:
dokumentację gcloud firebase test android run.
Dlaczego otrzymuję częściowe lub brakujące wyniki testu dotyczącego narzędzi?
Gdy przeprowadzasz testy z narzędziami, mogą pojawić się błędy wskazujące na częściowe
wyniki zawierające komunikaty takie jak Test run failed to complete. Expected
x tests, received y (gdzie y ma wartość mniejszą niż x).
Ten błąd oznacza, że Test Lab nie mógł przeanalizować logcat na potrzeby uruchomienia przypadku testowego
lub znaczniki końcowe, które są zwykle generowane przez
AndroidJUnitRunner
Oto najczęstsze przyczyny tego problemu:
Opis problemu
Możliwe rozwiązanie
Przypadek testowy nie został uruchomiony z powodu przekroczenia limitu czasu oczekiwania. Jeśli łączny czas trwania
jest dłuższy niż ustalony limit czasu lub dłuższy niż
max time,
Test Lab anuluje pozostałe przypadki testowe.
Zwiększ limit czasu dla macierzy, aby mieć pewność, że wszystkie testy zostaną ukończone.
Podzielić testy na fragmenty, aby w każdym fragmencie uruchamiały się
i ukończyć je w krótszym czasie.
Jeśli masz już włączone fragmentowanie, zwiększ liczbę fragmentów.
Nie udało się ukończyć przypadku testu, ponieważ został on zamknięty przedwcześnie lub utknął.
Przypadek testowy może zostać zamknięty przedwcześnie z powodu nieprzechwyczonej wyjątku lub błędu stwierdzenia. Przypadki testowe mogą utknąć w nieskończonej pętli lub
nie można kontynuować, np. jeśli aplikacja nie wyświetla właściwego widoku,
przypadek testowy nie może wykonać tego działania w interfejsie.
Obejrzyj film i zapoznaj się z zasadą logcat, aby dowiedzieć się, gdzie przeprowadza się test
zatrzymano.
Niestandardowy mechanizm uruchamiania testów (w tym rozszerzenie AndroidJUnitRunner) uległ nieoczekiwanie awarii lub zapisał nieoczekiwane znaczniki rozpoczęcia lub zakończenia przypadku testowego w pliku logcat.
Sprawdź kod mechanizmu uruchamiania testów.
Do pliku logcat zapisano zbyt dużo dzienników, co spowodowało przeciążenie bufora lub zablokowanie procesu logcat.
Zmniejsz liczbę zapisów do logcat.
Testowana aplikacja uległa awarii.
Debuguj aplikację.
Najczęstsze pytania
Jakie są bezpłatne limity
przez Test Lab? Co mam zrobić, jeśli skończy mi się miejsce?
Firebase Test Lab oferuje bezpłatne limity dotyczące testowania na urządzeniach i korzystania
Cloud APIs. Limit testów jest zgodny ze standardowym abonamentem Firebase.
w przeciwieństwie do limitów interfejsu Cloud API – nie.
Limit testowania
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. Po osiągnięciu limitu testowania poczekaj do
dzień lub przejdź na abonament Blaze, jeśli korzystasz obecnie z abonamentu Spark.
Jeśli masz już abonament Blaze, możesz poprosić o zwiększenie limitu.
Więcej informacji:
Limit testowania.
Interfejs Cloud Testing API ma 2 limity: liczbę żądań dziennie
projektu i żądań na 100 sekund na projekt. Możesz monitorować
w zakresie
Google Cloud.
Limit interfejsu Cloud Tool Results API
Interfejs Cloud Tool Results API ma 2 limity: liczbę zapytań dziennie
projektu, a zapytania na 100 sekund na projekt. Możesz monitorować
w zakresie
Google Cloud.
Prześlij prośbę o zwiększenie limitów do
edytowanie limitów
bezpośrednio w konsoli Google Cloud (zwróć uwagę, że większość limitów jest ustawiona na
maksimum) lub
Aby poprosić o większe przydziały danych w interfejsie API, wypełnij formularz prośby w konsoli Google Cloud lub skontaktuj się z zespołem pomocy Firebase.
Jak mogę sprawdzić, czy ruch docierający do mojego backendu pochodzi z Test Lab?
Z poziomu backendu możesz sprawdzić, czy ruch pochodzi z serwerów Firebase
testujemy urządzenia, sprawdzając źródłowy adres IP
Zakresy adresów IP.
Czy Test Lab współpracuje z VPC-SC?
Test Lab nie działa z VPC-SC, co blokuje kopiowanie aplikacji i innych artefaktów testowych między wewnętrznym miejscem na dane Test Lab a zbiorami wyników użytkowników.
Jak wykrywać niestabilne testy w
Test Lab?
Aby wykryć niestabilne działanie w testach, zalecamy użycie opcji
--num-flaky-test-attempts
opcji. Ponowne uruchomienia są rozliczane lub wliczane do limitu dziennego tak samo jak
i normalnych wykonaniach testów.
Pamiętaj:
Całe wykonanie testu jest uruchamiane ponownie po wykryciu błędu. Nie ma
ponawianie tylko nieudanych przypadków testowych.
Próby ponownego wykonania deflake są zaplanowane do wykonania w tym samym czasie, ale nie jest gwarantowane, że będą wykonywane równolegle, na przykład gdy ruch przekracza liczbę dostępnych urządzeń.
Czy usługa Test Lab obsługuje
urządzenia do noszenia?
Tak. Test Lab obsługuje Google Pixel Watch. Teraz możesz uruchamiać testy samodzielnej aplikacji 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:
najnowszych urządzeń Google?
Tak. Test Lab obsługuje urządzenia Google Pixel Tablet i Google Pixel Fold. Dostępne opcje
przeprowadzanie testów na samodzielnych urządzeniach fizycznych.
Więcej informacji o urządzeniach Test Lab znajdziesz w artykule Testowanie na dostępnych urządzeniach.
Jak wykryć aktywny 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 wykonywany na urządzeniu hostowanym przez Firebase. Aby to zrobić, sprawdź, czy w pliku MainActivity jest obecna właściwość systemowa firebase.test.lab. Możesz wtedy wykonać dodatkowe
na podstawie wartości logicznej dla funkcji testLabSetting. Więcej informacji znajdziesz w modyfikowanych zachowaniach testów.
Czy Test Lab
obsługuje Appium, Flutter/FlutterDriver, ReactNative/Jestem lub Cucumber?
Chociaż niektóre z tych elementów są uwzględnione w naszej mapie drogowej, nie możemy obecnie zagwarantować obsługi tych platform testowania i tworzenia aplikacji. Pamiętaj jednak:
jeśli aplikacja została utworzona za pomocą platformy obsługującej Espresso (np.
Flutter), test instrumentacji możesz napisać za pomocą
Espresso
a potem uruchom test w narzędziu Test Lab.
Czy Test Labobsługuje testowanie aplikacji zaciemnionych np. za pomocą ProGuard lub R8?
Metoda Test Lab nie obsługuje bezpośrednio zaciemniania kodu ani odczytywania jego zaciemnionego kodu. Choć
aplikacja prawdopodobnie będzie działać, wszelkie zaciemnione dane aplikacji, takie jak zrzuty stosu,
będą widoczne w dziennikach jako zaciemnione.
Czy mogę używać urządzenia składanego w
różnych stanów urządzenia składanego i stanów podczas testowania na urządzeniu Test Lab?
Urządzenia składane mogą znajdować się w różnych stanach złożonych, np. FLAT (w pełni otwarte) lub HALF_OPENED (w pełni otwarte lub zamknięte).
Z kolei stany składają się z różnych ustawień urządzenia.
stanu. Na przykład stan stołu, czyli stan HALF_OPENEDw orientacji poziomej, lub stan książki, który jest 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ć Firebase.
Pakiet SDK na potrzeby korzystania z narzędzia Test Lab. Jeśli nie masz jeszcze aplikacji, możesz
pobierz plik APK online lub utwórz aplikację i testowy plik APK jednej z
znajdziesz w repozytorium AndroidaX na GitHubie.
Pamiętaj, że potrzebujesz tylko
w pliku APK aplikacji, by uruchomić test Robo, a test instrumentacji wymaga
aplikację i testowy plik APK utworzone na podstawie kodu źródłowego. Aby dowiedzieć się więcej,
przeczytaj artykuł o testach instrumentowanych.
Jakie urządzenia są najlepsze do testowania różnic na podstawie zrzutów ekranu?
Testowanie różnic między zrzutami ekranu polega na tym, że wyniki testu opierają się na porównaniu ekranów
zdjęcia pozyskane w ramach testu złotych obrazów o oczekiwanym znaczeniu
zachowanie użytkownika. W przypadku niektórych typów urządzeń takie testy mogą być bardziej delikatne niż w przypadku innych. Zalecamy kierowanie
Urządzenia dla emulatorów Arm (*.arm) do tego rodzaju testów. Użycie emulatora uzbrojenia
które są bardzo podobne lub identyczne z „ogólnymi” emulatorami Android Studio.
Zalecamy też zapoznanie się z bibliotekami testów, które mogą pomóc w zwiększeniu niezawodności testów zrzutów ekranu w przypadku spodziewanych zmian.
Czy Test Lab aktualizuje urządzenia wirtualne?
Tak. Urządzenia wirtualne są aktualizowane po wprowadzeniu tych zmian:
Aktualizacje dotychczasowych obrazów
Wycofanie starszych poziomów interfejsu API
Dodane są nowe poziomy interfejsu API Androida
Jak włączyć raporty o stanie?
Aby włączyć raporty o zasięgu, dodaj coverage=true do
Pole environmentVariables.
Jeśli używasz narzędzia Android Test Agency, musisz podać katalog
przechowywać wyniki dotyczące pokrycia:
Gdzie znajdę informacje o urządzeniu, takie jak
rozdzielczości, obsługiwane interfejsy ABI itp.?
Szczegółowe informacje o urządzeniu są dostępne poprzez interfejs API i dostępne.
z klienta gcloud za pomocą polecenia
describe polecenie:
gcloud firebase test android models describe MODEL
Znane problemy
Captcha logowania
Test Robo nie może ominąć ekranów logowania, które wymagają
dodatkowe działanie użytkownika (poza wpisaniem danych logowania potrzebnych do zalogowania się), na przykład
wykonując zadanie CAPTCHA.
Obsługa platformy interfejsu
Test Robo działa najlepiej w przypadku aplikacji, które korzystają z elementów interfejsu użytkownika Androida.
platforma (w tym View, ViewGroup i WebView)
obiekty). Jeśli używasz testu Robo do ćwiczeń w aplikacjach, które korzystają z innego interfejsu
na różnych platformach, w tym w aplikacjach korzystających z silnika gry Unity, test może zakończyć się
bez poznawania świata poza pierwszym ekranem.