Android und iOS verwenden Appium, um Tests zu automatisieren

Referenz zur Umgebungskonstruktion: Python + Appium + Xcode + Android Studio Automatisierte Testumgebung Konstruktion_Android Studio Installation Python_Vermouth_00's Blog-CSDN-Blog

Android

1. Schließen Sie das Gerät an

Verbinden Sie das Android-Gerät über das Datenkabel mit dem Computer, schalten Sie den USB-Debugging-Schalter ein, autorisieren Sie es und verwenden Sie den Befehl adb devices, um zu überprüfen, ob das Gerät erfolgreich verbunden wurde.

Zweitens starten Sie den Appium-Dienst

Wenn es sich um die Desktop-Version von Appium handelt:

Klicken Sie zum Starten auf „Server starten“.

Befehlszeilenversion Appium:

nohup appium -p 4725 -U 4b72ec30 --session-override --allow-insecure=adb_shell > appium_a32a6a4e.log &

nohup läuft im Hintergrund, - Auf U folgt die Seriennummer des Geräts, die mit dem Befehl adb devices angezeigt werden kann.

3. Appium verbindet sich mit dem Gerät

desired_caps = {
            'platformName': 'Android',
            'platformVersion': '11',
            'deviceName': '4b72ec30 ',#不会进行校验,但是没有会报错
            'appActivity': 'com.autonavi.map.activity.NewMapActivity',#app的启动页面
            'appPackage': 'com.autonavi.minimap'
        }
self.driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)

iOS

1. Verbinden Sie das Telefon mit dem Datenkabel mit dem Computer

Geben Sie das Passwort ein, um dem Computer zu vertrauen

Zweitens starten Sie den Appium-Dienst

Wenn es sich um die Desktop-Version von Appium handelt:

Klicken Sie zum Starten auf „Server starten“.

Befehlszeilenversion Appium:

"start /b appium --session-override -a " + Adresse + " -p " + Appium_port+" --webdriveragent-port „+webdriveragent_port

webdriveragent_port: die Portnummer des Webdriveragent, der mit dem iOS-Client interagiert, Standard 8010

3. Xcode kompiliert WDA und führt es aus

(1) Richten Sie das Team aus [WebDriverAgentLib], [WebDriverAgentRunner] und [IntegrationApp] ein, wählen Sie die Apple-ID aus, bei der Sie sich angemeldet haben, und melden Sie sich bei der Apple-ID an: (Xcode in der oberen linken Ecke – „Einstellungen“ – klicken Sie unten, um hinzuzufügen oder zu löschen)

(2) Legen Sie [WebDriverAgentRunner], [IntegrationApp] die ID der Produktpaket-ID im Verpackungsverzeichnis unter „Build-Einstellungen“ fest, ändern Sie einfach Facebook und ändern Sie sie nach Belieben

  (3) Stellen Sie 【Produkt】 → [Schema] ein und wählen Sie [WebDriverAgentRunner] aus.

 (4) Wählen Sie das Gerät aus, mit dem Sie verbunden sind, und führen Sie Befehl + u aus

 (5) Bei der ersten Ausführung müssen Sie die Vertrauenswürdigkeit für das Zertifikat in den realen Geräteeinstellungen festlegen [Einstellungen] → [Allgemein] → [Beschreibung Datei- und Geräteverwaltung] Wählen Sie den WebDriverAgent aus, der gerade unter der Entwickler-APP installiert wurde, um ihm zu vertrauen, und er kann nach Befehl + u normal ausgeführt werden 

(6) In der Konsole können Sie folgende Informationen sehen:

 

Auf einige iPhones kann nicht über die IP- und Portnummer des Mobiltelefons zugegriffen werden. Zu diesem Zeitpunkt muss der Port des Mobiltelefons an den Mac weitergeleitet werden, und das Terminal führt den folgenden Befehl aus

iproxy 8100 8100

Ordnen Sie den 8100-Port des Mobiltelefons dem 8100-Port des Computers zu. Auf diese Weise können wir auf das Mobiltelefon zugreifen, indem wir auf Port 8100 des Computers zugreifen.

Ich habe im Internet herausgefunden, dass „für eine kontinuierliche Integration“ die folgende Methode verwendet wird, um wda im Code zu starten, und dass Sie es nicht in xcode starten müssen.

desiredCapabilities.setCapability("useNewWDA", true);

Nachdem Sie den Agenten in der Befehlszeile ausgeführt haben , können Sie http://127.0.0.1:8100/statusiproxy 8100 8100 im Browser  öffnen  , um zu überprüfen, ob das iOS-Gerät erfolgreich verbunden werden kann.

4. Appium verbindet sich mit dem Gerät

Parameterkonfiguration

desired_capabilities = {
  "platformName": "ios",
  "deviceName": "iPhone7P",
  "platformVersion": "13.6.1",
  "bundleId": "com.meituan.imeituan-beta",
  "udid": "e372ee5092535ad955329aac04c450fb78b96abd"
}

Erhalten Sie die UID des iOS-Telefons: Klicken Sie im Finder auf das angeschlossene Gerät. Die Standardanzeige ist Speicher und Leistung. Klicken Sie erneut hier, um zur Seriennummer und UID zu wechseln, und klicken Sie dann mit der rechten Maustaste, um die UID zu kopieren.

 

Holen Sie sich die Bundle-ID von ipa, Sie können Tidevice verwenden

 tidevice applist

 desired_caps = {
              "platformName": "ios",
              "deviceName": "iPhone7P",
              "platformVersion": "13.6.1",
              "bundleId": "com.meituan.imeituan-beta",
              "udid": "e372ee5092535ad955329aac04c450fb78b96abd",
              "clearSystemFiles": "true"
            }

        self.driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)

Früher lief es einwandfrei, aber heute ist ein Problem aufgetreten:

Bei der Verarbeitung des Befehls ist ein unbekannter serverseitiger Fehler aufgetreten. Ursprünglicher Fehler: Für Plattformname „ios“ konnte kein Treiber geladen werden. Bitte überprüfen Sie Ihre Appium-Installation

Nach der Deinstallation und Neuinstallation von Appium behoben.

Fortschrittlich:

Referenz zur Android+Appium-Multi-Machine-Automatisierung: Android+Python+Appium-Multi-Machine-Automation_Vermouth_00's Blog-CSDN-Blog

Ich denke du magst

Origin blog.csdn.net/Vermouth_00/article/details/131171579
Empfohlen
Rangfolge