Rozwiązywanie problemów z Laboratorium Najczęstsze pytania
Na tej stronie znajdziesz porady dotyczące rozwiązywania 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 Slacku Firebase lub skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów
Dlaczego test trwa tak długo?
Jeśli w katalogu Test Lab wybierzesz urządzenie o dużej pojemności, testy mogą się uruchamiać 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ń, ich wykonanie może zająć więcej czasu.
Testy przeprowadzane na dowolnym poziomie pojemności urządzenia mogą trwać dłużej z powodu tych czynników:
Ruch, który wpływa na dostępność urządzenia i szybkość testu.
awarie urządzenia lub infrastruktury, które mogą wystąpić w dowolnym momencie. Aby sprawdzić, czy zgłoszono infrastrukturę dla usługi Test Lab, otwórz panel stanu Firebase.
Więcej informacji o pojemności urządzenia w Test Lab znajdziesz w artykule o Androidzie i iOS.
Dlaczego otrzymuję niejednoznaczne wyniki testów?
Niejednoznaczne wyniki testów występują zwykle z powodu anulowania uruchomień testów lub błędów infrastruktury.
Błędy infrastruktury są spowodowane wewnętrznymi problemami Test Lab, takimi jak błędy sieci lub nieoczekiwane działanie urządzenia. Test Lab wycofuje wewnętrznie testy, które wielokrotnie wygenerowały błędy infrastruktury, zanim zgłosiły niejednoznaczne wyniki. Możesz jednak wyłączyć te próby za pomocą parametru failFast.
Aby określić przyczynę błędu, wykonaj te czynności:
Sprawdź, czy nie występują znane przerwy w działaniu usługi w panelu stanu Firebase.
Ponownie przeprowadź test w programie Test Lab, aby sprawdzić, czy można go odtworzyć.
Spróbuj wykonać test na innym urządzeniu lub typie urządzenia (w stosownych przypadkach).
Jeśli problem będzie się powtarzał, skontaktuj się z zespołem Test Lab na kanale#test-lab na Slacku 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. Aby tego uniknąć, użyj innego urządzenia. Więcej informacji o wybieraniu innego urządzenia znajdziesz w artykule
Pojemność urządzenia.
Dlaczego rozpoczęcie testu trwa tak długo?
Gdy przesyłasz żądanie testu, aplikacja jest najpierw weryfikowana, ponownie podpisywana itd. w celu przygotowania jej do przeprowadzania testów na urządzeniu. Zwykle zajmuje to mniej niż kilka sekund, ale może zależeć od takich czynników jak rozmiar aplikacji.
Gdy aplikacja jest gotowa, testy są planowane i pozostają w kolejce do momentu, gdy urządzenie 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 wykonywane).
Dlaczego testowanie trwa tak długo?
Po zakończeniu wykonania testu artefakty testowe są pobierane z urządzenia, przetwarzane i przesyłane do Cloud Storage. Czas trwania tego etapu może zależeć od liczby i rozmiaru artefaktów.
Najczęstsze pytania
Jakie są bezpłatne limity Test Lab? Co mam zrobić, jeśli skończy mi się miejsce?
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 planu cenowego Firebase, a interfejs Cloud API nie.
Testowanie limitu
Limity testów 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 wzrośnie wykorzystanie Google Cloud. Jeśli osiągniesz limit testów, zaczekaj 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 Testowanie limitu.
Wykorzystanie limitu testowego możesz monitorować w konsoli Google Cloud.
Limit interfejsu Cloud Testing API
Interfejs Cloud Testing API ma 2 limity: żądań dziennie na projekt i żądań co 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ń na dzień na projekt oraz zapytań co 100 sekund na projekt. Możesz monitorować wykorzystanie w konsoli Google Cloud.
Więcej informacji o limitach interfejsu API znajdziesz w limitach Cloud API dla Test Lab. Jeśli osiągnąłeś limit interfejsu API:
Prześlij prośbę o podwyższenie limitów, edytując limity bezpośrednio w konsoli Google Cloud (zazwyczaj większość limitów jest ustawiona na maksymalną wartość domyślną).
Aby poprosić o większe limity interfejsu 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?
Na backendzie możesz sprawdzić, czy ruch pochodzi z urządzeń testowych hostowanych przez Firebase. Aby to zrobić, porównaj adres IP źródłowy z naszym zakresem 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 wykryć niestabilne testy w Test Lab?
Aby wykryć niestabilne działanie w testach, zalecamy użycie opcji
--num-flaky-test-attempts
opcji. Powtórne uruchomienia deflake są rozliczane i wliczane do dziennego limitu w taki sam sposób jak normalne wykonania testu.
Pamiętaj:
Po wykryciu błędu cały test jest ponownie wykonywany. Nie można powtórzyć tylko nieudanych testów.
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 Test Lab obsługuje Appium, Flutter/FlutterDriver, ReactNative/Jest czy Cucumber?
Chociaż niektóre z tych elementów są uwzględnione w naszej liście planowanych działań, nie możemy obecnie zagwarantować obsługi tych platform testowania i tworzenia aplikacji.
Gdzie znajdę szczegóły urządzenia, takie jak rozdzielczość?
Szczegółowe informacje o urządzeniu są dostępne za pomocą interfejsu API. Można je uzyskać z klienta gcloud, używając polecenia describe:
gcloud firebase test ios models describe MODEL
Czy mogę używać podziału na części w przypadku testów na iOS?
Dzielenie na fragmenty nie jest obsługiwane w domyślnej konfiguracji usługi Test Lab na iOS. Możesz jednak użyć klienta Flank do podziału przypadków testowych na iOS.
Aby to zrobić, ustaw klucz OnlyTestIdentifiers i odpowiednie wartości w pliku .xctestrun.
Więcej informacji znajdziesz na stronie man.xcodebuild.xctestrun
Znane problemy
Captcha logowania
Testowanie automatyczne nie może pomijać ekranów logowania, które wymagają dodatkowych działań użytkownika poza wpisaniem danych logowania, np. rozwiązania CAPTCHA.
Obsługa platformy interfejsu
Test Robo działa najlepiej w przypadku aplikacji, które korzystają z elementów interfejsu z ramy interfejsu Androida (w tym obiektów View, ViewGroup i WebView). Jeśli używasz testu Robo do testowania aplikacji, które korzystają z innych frameworków interfejsu użytkownika, w tym aplikacji używających silnika gier Unity, test może się zamknąć bez sprawdzenia treści poza pierwszym ekranem.