Rozwiązywanie problemów z Laboratorium Najczęstsze pytania
.
Na tej stronie znajdziesz pomoc dotyczącą rozwiązywania problemów i odpowiedzi na najczęstsze pytania
pytania dotyczące przeprowadzania testów w Laboratorium Firebase. Znane problemy są również
udokumentowane. Jeśli nie możesz znaleźć czegoś
jeśli potrzebujesz dodatkowej pomocy, dołącz do #test-lab
kanał w
Firebase Slack lub skontaktuj się z Firebase
pomocy.
Rozwiązywanie problemów
Dlaczego trwa tak długo test?
Gdy w Laboratorium wybierzesz urządzenie o dużej pojemności
testy mogą rozpocząć się szybciej. Gdy
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 istnieje wskazana infrastruktura na potrzeby Laboratorium, zapoznaj się z
Panel stanu Firebase.
Aby dowiedzieć się więcej o pojemności urządzenia w Laboratorium, sprawdź jego pojemność
na Androidzie i iOS.
Dlaczego otrzymuję niejednoznaczne wyniki testu?
Niejednoznaczne wyniki testów często występują z powodu anulowania testów
czy też błędy infrastruktury.
Błędy infrastruktury są spowodowane przez wewnętrzne problemy z Laboratorium, takie jak sieć
lub nieoczekiwane działanie urządzeń. Laboratorium wewnętrznie wycofuje 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 Laboratorium, aby 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 Laboratorium na
kanał#test-lab jest włączony
Slack Firebase.
Dlaczego fragmentacja sprawiła, że testy zostały uruchomione
dłużej?
Fragmentacja może wydłużyć czas trwania testów, gdy liczba fragmentów jest większa
przekracza liczbę urządzeń dostępnych do użycia w Laboratorium. Do
uniknąć takiej sytuacji, spróbuj zmienić urządzenie. Więcej informacji
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 będzie gotowa, wykonania testów zostaną zaplanowane i pozostaną w kolejce
dopóki urządzenie nie będzie gotowe do uruchomienia. Dopóki nie zakończą się wszystkie testy,
macierz ma stan „Oczekujący”. (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
urządzenia, 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
Artefakty wykonania testu (np. zrzuty ekranu i pliki dziennika) są przechowywane w
z Google Cloud Storage i bezpośrednio renderowane 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 Laboratorium. 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 Laboratorium nie może przeanalizować pliku 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,
Laboratorium anuluje pozostałe przypadki testowe.
Zwiększ czas oczekiwania macierzy, aby mieć pewność, że wszystkie testy się zakończą.
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 testowego, ponieważ zakończyło się ono przedwcześnie lub zacięło.
Przypadek testowy może zakończyć się przedwcześnie z powodu nieobsłużonego wyjątku lub
. 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 program uruchamiający test (w tym rozszerzenie AndroidJUnitRunner) uległ awarii
niespodziewanie albo zapisał nieoczekiwane znaczniki początku lub końca przypadku testowego w celu
logcat
Sprawdź kod mechanizmu uruchamiania testów.
Nadmiarowe logi zostały zapisane w logcat, co spowodowało przekroczenie bufora
lub zawiesił proces logcat.
Zmniejsz liczbę zapisów do logcat.
Testowana aplikacja uległa awarii.
Debuguj aplikację.
Najczęstsze pytania
Jakie są bezpłatne limity
do Laboratorium? Co zrobić, gdy mi się skończą?
Laboratorium Firebase oferuje bezpłatne limity do przeprowadzania testów na urządzeniach oraz
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 testowania bez opłat dla użytkowników. Dla:
abonamentu Blaze, limity mogą wzrosnąć, jeśli korzystasz z Google Cloud
rośnie wraz z upływem czasu. 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
Konsola 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
Konsola Google Cloud.
Prześlij prośbę o zwiększenie limitów do
edytowanie limitów
bezpośrednio w konsoli Google Cloud (pamiętaj, że większość limitów jest ustawiona na
maksimum) lub
Poproś o zwiększenie limitów interfejsu API, wypełniając formularz na
Google Cloud Console lub przez skontaktowanie się
Obsługa Firebase.
Jak sprawdzić, czy
ruch do mojego backendu pochodzi z Laboratorium?
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 Laboratorium współpracuje z
Ustawienia VPC?
Laboratorium nie działa ze środowiskiem VPC-SC, które blokuje
kopiowanie aplikacji i innych artefaktów testowych między wewnętrznymi komponentami Laboratorium
miejsce na dane i informacje o użytkownikach zasobników wyników.
Jak wykrywać niestabilne testy w
Laboratorium?
Aby wykryć niestabilne działanie testów, zalecamy użycie funkcji
--num-flaky-test-attempts
. 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.
Zaplanowane uruchomienia ponawiania nie zostały zaplanowane w tym samym czasie, ale nie
które mogą działać równolegle, np. gdy ruch przekroczy liczbę
dostępnych urządzeniach.
.
Czy Laboratorium obsługuje testy
urządzenia do noszenia?
Tak. Laboratorium obsługuje zegarek Google Pixel Watch. Testy możesz teraz przeprowadzać
samodzielnej aplikacji na Wear na zegarkach Google Pixel Watch. Aby dowiedzieć się więcej o:
Urządzenia Laboratorium, patrz Testuj włączone
dostępnych urządzeń.
Czy Laboratorium obsługuje
najnowszych urządzeń Google?
Tak. Laboratorium obsługuje urządzenia Google Pixel Tablet i Google Pixel Fold. Dostępne opcje
przeprowadzanie testów na samodzielnych urządzeniach fizycznych.
Aby dowiedzieć się więcej o:
Urządzenia Laboratorium, patrz Testuj włączone
dostępnych urządzeń.
Jak wykryć aktywny test
w Laboratorium?
Jeśli testujesz aplikację w Firebase lub przeprowadzasz testy
raport przed opublikowaniem
w Konsoli Play możesz sprawdzić, czy test jest realizowany
na urządzeniu hostowanym przez Firebase, sprawdzając właściwość systemową.
firebase.test.lab w pliku MainActivity. Możesz wtedy wykonać dodatkowe
na podstawie wartości logicznej dla funkcji testLabSetting. Więcej
Więcej informacji zawiera
Zmodyfikowane zachowania testowe.
Czy Laboratorium
obsługuje Appium, Flutter/FlutterDriver, ReactNative/Jestem lub Cucumber?
Chociaż niektóre z nich są w planach, obecnie nie możemy
i zaangażuje się w obsługę 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 następnie uruchomić test w Laboratorium.
Czy Laboratorium
obsługuje testowanie zaciemnionych aplikacji, np. przy użyciu ProGuard lub R8)?
Laboratorium nie obsługuje bezpośrednio zaciemniania kodu ani usuwania zaciemnienia 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
w różnych stanach i stanach urządzenia składanego podczas testów w Laboratorium?
Urządzenia składane mogą znajdować się w różnych stanach złożonych, np. FLAT (w pełni otwarte) lub HALF_OPENED (pomiędzy pełnym złożeniem a otwartym).
Z kolei stany składają się z różnych ustawień urządzenia.
state. Może to być na przykład stan HALF_OPENED, czyli stan HALF_OPENED w orientacji poziomej, lub stan książki, czyli stan HALF_OPENED w orientacji pionowej.
Czy mogę skorzystać z Laboratorium, jeśli nie mam
aplikację?
W przeciwieństwie do innych usług Firebase nie musisz dodawać Firebase.
pakietu SDK do korzystania z Laboratorium. Jeśli nie masz jeszcze aplikacji, możesz
pobierz plik APK online lub utwórz aplikację i testowy plik APK z jednego 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.
Do jakich urządzeń najlepiej nadają się urządzenia
testowaniu różnic na zrzutach ekranu?
Testowanie różnic między zrzutami ekranu polega na tym, że wyniki testu bazują na porównywaniu ekranu
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 również zapoznanie się z bibliotekami testowymi, dzięki którym
dokładniejsze testy zrzutów ekranu w obecności oczekiwanych zmian.
Czy Laboratorium aktualizuje urządzenia wirtualne?
Tak. Urządzenia wirtualne są aktualizowane po wprowadzeniu tych zmian:
Aktualizacje dotychczasowych obrazów
Wycofanie wcześniejszych 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 UI
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.