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.
Interaktion mit dem Gerät mithilfe von Appium
Sobald Sie eine Fernzugriffssitzung erstellt haben, steht das Gerät für Appium-Tests zur Verfügung. Während der gesamten Dauer der Fernzugriffssitzung können Sie auf dem Gerät so viele Appium-Sitzungen ausführen, wie Sie möchten, ohne Einschränkungen, welche Clients Sie verwenden. Sie können beispielsweise damit beginnen, einen Test mit Ihrem lokalen Appium-Code von Ihrer IDE aus auszuführen und dann zur Verwendung von Appium Inspector übergehen, um alle auftretenden Probleme zu beheben. Die Sitzung kann bis zu 150 Minuten dauern. Wenn jedoch länger als 5 Minuten keine Aktivität stattfindet (entweder über die interaktive Konsole oder über den Appium-Endpunkt), wird die Sitzung unterbrochen.
Verwenden von Apps zum Testen mit Ihrer Appium-Sitzung
Es gibt verschiedene Möglichkeiten, eine App zur Verwendung mit Ihrer Appium-Sitzung bereitzustellen:
-
Laden Sie eine App auf Device Farm hoch und installieren Sie sie in der Sitzung.
-
Geben Sie eine HTTPS-URL oder Amazon S3 S3-URI als
appium:appFunktion an. -
Referenzieren Sie eine bereits installierte App anhand ihres Paketnamens (
appium:appPackageunter Android oderappium:bundleIdiOS). -
Testen Sie eine Web-App, indem Sie die
browserNameFunktion angeben (Chromeauf Android,Safariauf iOS).
Die standardmäßigen Größenbeschränkungen für Apps (4 GB) gelten für alle App-Quellen.
Anmerkung
Device Farm unterstützt die Übergabe eines lokalen Dateisystempfads appium:app während einer Fernzugriffssitzung nicht.
Apps hochladen, installieren und verwenden
Gehen Sie folgendermaßen vor, um eine hochgeladene App mit Ihrer Appium-Sitzung zu verwenden:
-
Laden Sie Ihre App hoch und installieren Sie sie
Es gibt zwei Möglichkeiten, eine App hochzuladen und auf dem zu testenden Gerät zu installieren:
-
Nehmen Sie den App-ARN in Ihre
CreateRemoteAccessSessionAnfrage auf. Die App wird beim Start der Sitzung automatisch auf dem Gerät installiert. Sie können auch eine Zusatz-App ARNs hinzufügen, die zusammen mit der primären App installiert wird. -
Installieren Sie die App während einer aktiven Sitzung mithilfe der
InstallToRemoteAccessSessionAPI oder indem Sie sie über die Device Farm Farm-Konsole hochladen. Auf diese Weise können Sie die zu testende App ändern, ohne eine neue Sitzung zu erstellen.
-
-
Verwenden Sie die installierte App
Nach der Installation wird die App automatisch als
appium:appStandardfunktion für alle nachfolgenden Appium-Sitzungen eingefügt. Wenn Sie zusätzliche Apps hinzugefügt haben, werden diese alsappium:otherAppsFunktion festgelegt.Wenn Sie beispielsweise eine Fernzugriffssitzung
com.aws.devicefarm.sampleals Ihre App undcom.aws.devicefarm.other.sampleals eine Ihrer Hilfs-Apps erstellen, verfügt diese bei der Erstellung einer Appium-Sitzung über Funktionen, die den folgenden ähneln:{ "value": { "sessionId": "abcdef123456-1234-5678-abcd-abcdef123456", "capabilities": { "app": "/tmp/com.aws.devicefarm.sample.apk", "otherApps": "[\"/tmp/com.aws.devicefarm.other.sample.apk\"]", ... } } }Wenn Sie während der Sitzung eine neue App installieren, ersetzt diese die aktuelle
appium:appFunktion. Wenn die zuvor installierte App einen eindeutigen Paketnamen hat, verbleibt sie auf dem Gerät und wird zurappium:otherAppsFunktion hinzugefügt.Wenn Sie die App beispielsweise zunächst
com.aws.devicefarm.samplebei der Erstellung Ihrer Fernzugriffssitzung verwenden, dann abercom.aws.devicefarm.other.samplewährend der Sitzung installieren, verfügen Ihre Appium-Sitzungen über Funktionen, die den folgenden ähneln:{ "value": { "sessionId": "abcdef123456-1234-5678-abcd-abcdef123456", "capabilities": { "app": "/tmp/com.aws.devicefarm.other.sample.apk", "otherApps": "[\"/tmp/com.aws.devicefarm.sample.apk\"]", ... } } }
Anmerkung
Weitere Informationen zum automatischen Hochladen von Apps als Teil Ihrer Fernzugriffssitzung finden Sie unter Automatisieren von App-Uploads.
Verwenden einer HTTPS-URL
Sie können beim Erstellen einer Appium-Sitzung eine öffentlich zugängliche HTTPS-URL als appium:app gewünschte Funktion angeben. Die URL muss direkt auf eine herunterladbare App-Datei verweisen (z. B. eine .apk .ipa OR-Datei). Device Farm lädt die App von der angegebenen URL herunter und installiert sie auf dem zu testenden Gerät.
Wichtig
Es URLs werden nur HTTPS unterstützt. Reines HTTP URLs wird abgelehnt.
Mit der folgenden Appium-Sitzungserstellungsanforderung wird beispielsweise eine App von einer HTTPS-URL heruntergeladen:
{
"capabilities":
{
"alwaysMatch": {},
"firstMatch":
[
{
"appium:app": "https://example.com/path/to/MyApp.apk"
}
]
}
}
Verwenden einer Amazon S3 S3-URI
Sie können eine Amazon S3 S3-URI (z. B.s3://my-bucket/path/to/MyApp.ipa) als appium:app gewünschte Funktion angeben, wenn Sie eine Appium-Sitzung erstellen. Device Farm lädt die App vom angegebenen S3-Standort herunter und installiert sie auf dem zu testenden Gerät.
Um eine S3-URI verwenden zu können, müssen die folgenden Anforderungen erfüllt sein:
-
Die Fernzugriffssitzung muss von einem Projekt aus gestartet werden, für das eine IAM-Ausführungsrolle konfiguriert ist.
-
Die IAM-Ausführungsrolle muss eine maximale Sitzungsdauer von mindestens 150 Minuten haben, da die Rolle für die Dauer der RAS-Sitzung übernommen wird.
-
Die IAM-Ausführungsrolle muss berechtigt sein, das in
s3:GetObjectder URI angegebene S3-Objekt aufzurufen. Wir empfehlen außerdem, dies3:HeadObjectBerechtigung für dasselbe Objekt zu erteilen, sodass Device Farm die Existenz des Objekts überprüfen kann, bevor der Download versucht wird.
Mit der folgenden Appium-Sitzungserstellungsanfrage wird beispielsweise eine App von einem S3-URI heruntergeladen:
{
"capabilities":
{
"alwaysMatch": {},
"firstMatch":
[
{
"appium:app": "s3://my-test-bucket/apps/MyApp.ipa"
}
]
}
}
Im Folgenden finden Sie ein Beispiel für eine IAM-Berechtigungsrichtlinie, die den empfohlenen Zugriff für das Herunterladen einer App von Amazon S3 gewährt, einschließlich der optionalen s3:HeadObject Berechtigung. Weitere Informationen zur Konfiguration von IAM-Ausführungsrollen finden Sie unter. Greifen Sie mithilfe einer IAM-Ausführungsrolle auf AWS-Ressourcen zu
Beispiel
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:HeadObject" ], "Resource": "arn:aws:s3:::my-test-bucket/apps/*" } ] }
Verwenden einer bereits installierten App
Wenn die App, die Sie testen möchten, bereits auf dem Gerät installiert ist, können Sie sie direkt anhand ihres Paketnamens referenzieren, anstatt sie hochzuladen. Verwenden Sie die appium:appActivity Funktionen appium:appPackage und auf Android oder die appium:bundleId Funktion auf iOS.
Mit der folgenden Appium-Sitzungserstellungsanforderung wird beispielsweise eine bereits installierte Android-App gestartet:
{
"capabilities":
{
"alwaysMatch": {},
"firstMatch":
[
{
"appium:appPackage": "com.example.myapp",
"appium:appActivity": "com.example.myapp.MainActivity"
}
]
}
}
Verwenden Sie auf iOS appium:bundleId stattdessen:
{
"capabilities":
{
"alwaysMatch": {},
"firstMatch":
[
{
"appium:bundleId": "com.example.myapp"
}
]
}
}
Eine Web-App testen
Um eine Web-App zu testen, geben Sie die browserName Funktion in Ihrer Appium-Sitzungserstellungsanfrage an. Verwenden Sie Chrome auf Android-Geräten oder Safari iOS-Geräten.
Mit der folgenden Anfrage wird Chrome beispielsweise auf einem Android-Gerät geöffnet:
{
"capabilities":
{
"alwaysMatch": {},
"firstMatch":
[
{
"browserName": "Chrome"
}
]
}
}
Wie benutzt man den Appium-Endpunkt
Hier sind die Schritte für den Zugriff auf den Appium-Endpunkt der Sitzung über die Konsole AWS CLI, den und den. AWS SDKs Diese Schritte beinhalten die ersten Schritte mit der Ausführung von Tests unter Verwendung verschiedener Appium-Client-Testframeworks: