Erkundung und Best Practice im Bereich APP-Pipeline-Tests | Technisches Logistikteam von Jingdong

1. Hintergrund

Aufgrund seiner Besonderheit (Verbindung zum Testcomputer erforderlich) wird die APP-seitige UI-Automatisierung im Allgemeinen lokal ausgeführt. Die Einschränkungen dieser Ausführungsmethode haben die folgenden Nachteile:

  1. Geringe Pünktlichkeit: R&D muss den Test jedes Mal nach dem Verpacken benachrichtigen und dann zur Verpackungsplattform gehen, um das Paket nach dem Test abzuholen, es gibt einen Zeitunterschied
  2. Automatisierte Skripte können nicht für den F&E-Selbsttest oder die Produktabnahme verwendet werden: Wenn Sie automatisierte Skripte während des F&E-Selbsttests und der Produktabnahme verwenden möchten, müssen Sie eine entsprechende Betriebsumgebung aufbauen und eine Testmaschine vorbereiten. Die umständlichen Schritte führen zum Abbruch der Einsatz von Automatisierung in Forschung und Entwicklung/Produkten. Im Prozess der manuellen Überprüfung sind häufig Tests erforderlich, um Bestellungen aufzugeben und Daten zu ändern, was ineffizient ist
  3. Das Ergebnis der lokalen Ausführung hat keinen dauerhaften Speicher, was der Ergebnismessung nicht förderlich ist

2 Schemaanalyse

Um die oben genannten Probleme zu lösen, ist es notwendig, ein Fließband aufzubauen. Die häufig verwendete Fließbandplattform im CI/CD-Bereich ist Jenkins. Jenkins ist leistungsstark und kann neu entwickelt werden, aber die Ausführung der APP-Automatisierung erfordert Windows-Ausführungsmaschinen , Simulatoren/reale Maschinen. Diese Anforderungen erhöhen zweifellos die Testkosten. Im Gegensatz dazu handelt es sich bei der Bamboo-Plattform um eine auf Jenkins basierende Pipeline-Plattform, die nicht nur viele Funktionen von Jenkins erbt, sondern auch die grafische Konfiguration unterstützt und mit anderen Plattformen wie der Cyber-Plattform verbunden ist.

Wie aus dem Vergleich in der folgenden Abbildung ersichtlich ist, sind die Kosten für die Wiederverwendung der vorhandenen Bamboo-Plattform geringer und es müssen folgende Änderungen vorgenommen werden: 1. Das Automatisierungs-Framework muss auf das Airtest-Framework geändert werden. 2. Der Test Der Bericht muss verarbeitet werden, um die Erwartungen zu erfüllen.

3 Programmumsetzung

Architekturdiagramm:

Flussdiagramm:

Ergebnisse der:

4 Bei der Implementierung aufgetretene Probleme und Lösungen

1. Das Debug-Paket wurde von Bamboo fertiggestellt, das Release-Paket war jedoch nicht erfolgreich.

Lösung: Laden Sie die Datei sign.properties in die Zertifikatsverwaltung hoch, entfernen Sie die absoluten Pfadangaben in der Datei und verwenden Sie den relativen Pfad

2. Die Cyberplattform kann keine chinesischen Schriftzeichen eingeben

Lösung: Verwenden Sie poco().set_text() anstelle der text()-Methode

3. Wenn die Ausführung des Skripts fehlschlägt, wird RuntimeError angezeigt: AndroidUiautomationPoco konnte nicht gestartet werden

Lösung: Die Cyber-Maschine verfügt über ATX, was sich auf die Poco-Initialisierung auswirkt. Fügen Sie Code vor der Poco-Initialisierung hinzu:

# 停止ATX
try:
shell("am force-stop com.github.uiautomator")
shell("/data/local/tmp/atx-agent server --stop")
except Exception as e:
print("兼容非赛博机器")

5 offene Fragen

  1. Der Zugriff auf die Codierungsplattform unterstützt nur das Airtest-Framework
    . Auswirkung: Das ursprüngliche Framework muss geändert werden, und die Kosten sind hoch. Ich habe mit der für das Produkt verantwortlichen Cyber-Plattform kommuniziert, und die Cyber-Plattform wird später die Funktion des Andockens an andere Frameworks entwickeln.
  2. Es werden viele Daten manuell konfiguriert: Module, Anwendungsfälle und Anwendungsfallsätze.
    Auswirkung: Zusätzlich zu Testskripten müssen Module, Anwendungsfälle und Anwendungsfallsätze separat konfiguriert werden, was hohe Arbeitskosten verursacht. Anschließend muss berücksichtigt werden, dass nach dem Zusammenführen des Codes der Codierungsplattform die Timing-Aufgabe ausgelöst wird, um automatisch die entsprechenden Module, Anwendungsfälle und Anwendungsfallsätze zu generieren.
  3. Das Modell kann nicht angegeben werden.
    Auswirkung: Das Modell für Kompatibilitätstests kann nicht angegeben werden. Ich habe mit dem Produkt der Cyber-Plattform-Unterregeln kommuniziert und es besteht noch kein Plan, dieses Element zu ändern.
  4. Die Auswirkungen des fehlenden Zugriffs von Jingguanjia auf die Online-Paketplattform
    : Das APK-Paket muss während des Testvorgangs lokal gespeichert werden, was den lokalen Speicher beansprucht und leicht zu verwechseln ist; die Versionsverwaltung kann nicht durchgeführt werden und die historische Version kann nicht bereitgestellt werden rechtzeitig, wenn das Problem reproduziert werden muss; UED-Begehung oder Produktabnahme. Nur Beijing ME kann R&D kontaktieren, um das Paket abzuholen, das nicht pünktlich ist; es kann nicht an das Fließband angeschlossen werden.

6 Erwartete Vorteile

Die Pipeline löst nicht nur das Problem unzureichender Umgebungskonfiguration und unzureichender Testmaschinen, sondern bietet auch die folgenden Vorteile:

  1. Durch den geringen Lernaufwand und die einfache Bedienung wird erwartet, dass zwei Drittel der Arbeitsstunden eingespart werden
  2. Die Ausführungsergebnisse können dauerhaft gespeichert und zur späteren Datenanalyse mit der automatisierten Messplattform kombiniert werden
  3. Sonnenbrillenatome können zur Pipeline hinzugefügt werden und Flutter-Ausnahmen können während des UI-Automatisierungstests überwacht werden
  4. Die Online-Version kann zur täglichen Überwachung genutzt werden, um Probleme rechtzeitig zu finden

Autor: Fan Wenjun, JD Logistics

Quelle: JD Cloud-Entwicklergemeinschaft Ziqishuo Tech

Absolventen der Nationalen Volksuniversität haben die Informationen aller Schüler der Schule gestohlen, um eine Website zur Schönheitsbewertung zu erstellen, und wurden strafrechtlich festgenommen. Die neue Windows-Version von QQ basierend auf der NT-Architektur wird offiziell veröffentlicht. Die Vereinigten Staaten werden die Verwendung durch China einschränken von Amazon, Microsoft und anderen Cloud-Diensten, die Trainings-KI-Modelle bereitstellen. Open-Source-Projekte haben angekündigt, die Funktionsentwicklung zu stoppen . LeaferJS , die bestbezahlte technische Position im Jahr 2023, wurde veröffentlicht: Visual Studio Code 1.80, eine Open-Source- und leistungsstarke 2D-Grafikbibliothek , unterstützt Terminal-Image-Funktionen . Die Anzahl der Threads-Registrierungen hat 30 Millionen überschritten. „Änderung“ Deepin übernimmt Asahi Linux, um sich im Juli an das Apple M1-Datenbankranking anzupassen: Oracle steigt und öffnet die Punktzahl erneut
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/4090830/blog/10086669
Recomendado
Clasificación