Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bewährte Methoden für die Ausführung benutzerdefinierter Testumgebungen
In den folgenden Themen werden empfohlene bewährte Methoden für die Verwendung der benutzerdefinierten Testausführung mit Device Farm behandelt.
Konfiguration ausführen
-
Verlassen Sie sich bei der Ausführungskonfiguration wo immer möglich auf von Device Farm verwaltete Software und API-Funktionen, anstatt ähnliche Konfigurationen über Shell-Befehle in der Testspezifikationsdatei anzuwenden. Dazu gehört auch die Konfiguration des Testhosts und des Geräts, da diese auf allen Testhosts und Geräten nachhaltiger und konsistenter sein wird.
Device Farm empfiehlt Ihnen zwar, Ihre Testspezifikationsdatei so weit anzupassen, wie Sie es für die Ausführung Ihrer Tests benötigen, aber die Verwaltung der Testspezifikationsdatei kann im Laufe der Zeit schwierig werden, da ihr mehr benutzerdefinierte Befehle hinzugefügt werden. Verwenden von Device Farm-verwalteter Software (über Tools wie
devicefarm-cliund die verfügbaren Standardtools in$PATH) und mithilfe verwalteter Funktionen (wie demdeviceProxyAnforderungsparameter) zur Vereinfachung der Testspezifikationsdatei, indem die Verantwortung für die Wartung auf Device Farm selbst verlagert wird.
Testspezifikation und Testpaketcode
-
Verwenden Sie keine absoluten Pfade und verlassen Sie sich nicht auf bestimmte Nebenversionen in Ihrer Testspezifikationsdatei oder Ihrem Testpaketcode. Device Farm wendet routinemäßige Updates auf den ausgewählten Testhost und die enthaltenen Softwareversionen an. Die Verwendung bestimmter oder absoluter Pfade (z. B.
/usr/local/bin/pythonanstelle vonpython) oder die Anforderung bestimmter Nebenversionen (z. B. Node.js20.3.1statt nur20) kann dazu führen, dass Ihre Tests die erforderliche ausführbare Datei/nicht finden können.Im Rahmen der benutzerdefinierten Testausführung richtet Device Farm verschiedene Umgebungsvariablen und die
$PATHVariable ein, um sicherzustellen, dass die Tests in unseren dynamischen Umgebungen konsistent ausgeführt werden. Weitere Informationen finden Sie unter Umgebungsvariablen für benutzerdefinierte Testumgebungen und Unterstützte Software in benutzerdefinierten Testumgebungen. -
Speichern Sie während des Testlaufs generierte oder kopierte Dateien im temporären Verzeichnis. Heute stellen wir sicher, dass der Benutzer während der Testausführung auf das temporäre Verzeichnis (
/tmp) zugreifen kann (neben verwalteten Verzeichnissen wie dem$DEVICEFARM_LOG_DIR). Andere Verzeichnisse, auf die der Benutzer Zugriff hat, können sich im Laufe der Zeit aufgrund der Anforderungen des Dienstes oder des verwendeten Betriebssystems ändern. -
Speichern Sie Ihre Testausführungsprotokolle unter
$DEVICEFARM_LOG_DIR. Dies ist das Standardartefaktverzeichnis, das für Ihre Ausführung bereitgestellt wird, um Ausführungslogs/Artefakte hinzuzufügen. Die von uns bereitgestellten Beispieltestspezifikationen verwenden standardmäßig dieses Verzeichnis für Artefakte. -
Stellen Sie sicher, dass Ihre Befehle bei einem Fehler während der
testPhase Ihrer Testspezifikation einen Code ungleich Null zurückgeben. Wir ermitteln, ob Ihre Ausführung fehlgeschlagen ist, indem wir für jeden Shell-Befehl, der während der Phase aufgerufen wurde, nach einem Exit-Code ungleich Null suchen.testSie sollten sicherstellen, dass Ihr Logik- oder Testframework für alle gewünschten Szenarien einen Exit-Code ungleich Null zurückgibt, was möglicherweise eine zusätzliche Konfiguration erfordert.Beispielsweise betrachten bestimmte Test-Frameworks (wie JUnit5), dass keine Tests ausgeführt wurden, nicht als Fehler, sodass festgestellt wird, dass Ihre Tests erfolgreich ausgeführt wurden, auch wenn nichts ausgeführt wurde. JUnit5 Als Beispiel müssten Sie die Befehlszeilenoption angeben,
--fail-if-no-testsum sicherzustellen, dass dieses Szenario mit einem Exit-Code ungleich Null beendet wird. -
Überprüfen Sie die Kompatibilität der Software mit der Betriebssystemversion des Geräts und der Testhostversion, die Sie für den Testlauf verwenden werden. Beispielsweise gibt es beim Testen von Software-Frameworks (z. B. Appium) bestimmte Funktionen, die möglicherweise nicht auf allen Betriebssystemversionen des getesteten Geräts wie vorgesehen funktionieren.
Sicherheit
-
Vermeiden Sie es, sensible Variablen (wie AWS-Schlüssel) in Ihrer Testspezifikationsdatei zu speichern oder zu protokollieren. Die Testspezifikationsdateien, die von der Testspezifikation generierten Skripte und die Protokolle des Testspezifikationsskripts werden am Ende der Testausführung alle als herunterladbare Artefakte bereitgestellt. Dies kann zur unbeabsichtigten Offenlegung von Geheimnissen für andere Benutzer in Ihrem Konto mit Lesezugriff auf Ihren Testlauf führen.