Dieser Artikel ist ein 12/20 Artikel von Samzap Adventskalender 2019 # 1.
https://airtest.netease.com/ Plattformübergreifende UI-Automatisierungs-IDE, entwickelt und veröffentlicht von NetEase. Hier nennen wir es einen allgemeinen Begriff für IDEs und Projekte zum automatischen Testen von mobilen Apps, die Bilderkennung verwenden. Auf diese Weise können Sie Testcode erstellen, ohne den Code im Projekt direkt zu kennen. Sie können den Test in Massenproduktion herstellen, als wäre es ein E2E-Test, oder als Alterungstest können Sie dieselben Aktionen endlos wiederholen. Es ist auch für solche Arbeiten geeignet.
https://github.com/AirtestProject/Poco Unter den automatisierten Tests wie Airtest konzentriert sich diese Bibliothek auf die Benutzeroberfläche von Unity. Durch die Einbindung von Poco in Ihr Unity-Projekt können Sie auf den UITree verweisen.
https://github.com/AirtestProject/Airtest/tree/master/airtest/core/android Sie können die Struktur hauptsächlich durch Lesen der Quellcodegruppe hier sehen.
Wir senden Minicaps auf Android, empfangen Bilder von Minicaps und senden Tap-Daten. https://github.com/openstf/minicap https://openstf.io/ Minicap ist übrigens eines der von Cyber Agent veröffentlichten Projekte, die Hochgeschwindigkeits-Screenshots auf Android-Geräten aufnehmen und senden.
libimobiledevice(https://github.com/libimobiledevice) Mit diesem Tool können Sie Bilder erhalten. Dies ist ein Tool, das auch in Flutters iOS-Builds verwendet wird. Darüber hinaus werden durch Tippen auf Informationen usw. XcTest geleitet.
https://airtest.netease.com/docs/en/1_quick_start/3_get_started_with_iOS_test.html
Zu diesem Zweck haben wir ein Testprojekt vorbereitet. Nein, es ist eine ziemliche Fähigkeit. Mit dieser Methode können Sie das Terminal jedoch vom Startbildschirm aus steuern. Dies ist also ein guter E2E-Test.
https://github.com/AirtestProject/Poco-SDK/tree/master/Unity3D Installieren Sie dies und löschen Sie das nicht verwendete Gui-Verzeichnis.
Und wenn Sie einen Manager wie diesen anhängen.
var pocoGameObject = new GameObject();
pocoGameObject.name = "Poco";
pocoGameObject.gameObject.AddComponent<PocoManager>();
Abhängig von der Umgebung können die folgenden APIs Ihnen bei Android helfen. Die Verwendung in UnitTest unterstützt die Implementierung. https://github.com/AirtestProject/Airtest/blob/master/airtest/core/android/recorder.py
Die Operation ist in der Regel besonders schwer auf Bildschirmen, auf denen die Menge an GameObject groß ist und sich die Parameter der Positionsinformationen häufig ändern (z. B. Anzeigen eines Zeichens in Live2D). Erwägen Sie die Verwendung von Einfrieren. https://poco.readthedocs.io/en/latest/source/doc/poco-example/optimize_speed_by_freezing_UI.html
Wenn Freeze verwendet wird, bleibt der Speicherort der Benutzeroberfläche zum Zeitpunkt der Verwendung von freeze () erhalten, sodass keine Kommunikation mit der Anwendungsseite stattfindet. Sie können Eingaben mit hoher Geschwindigkeit senden. Wenn sich jedoch die Position der Benutzeroberfläche ändert (Scrollen oder Verschieben der Benutzeroberfläche), müssen der Zeitpunkt und die Position von freeze () berücksichtigt werden.
self.freeze = self.poco.freeze()
#Die Benutzeroberfläche der Schaltfläche "bewegt" sich normalerweise nicht, also holen Sie sie aus dem Einfrieren
#Bitte beachten Sie jedoch, dass es nicht möglich ist, auf dem Bildschirm zu beurteilen, ob oder nicht.
self.attack_button = self.freeze("attack_button")
#Sie können einfach die Anzahl der Terminals angeben.
_serial = "Android:///hogehoge"
dev = connect_device(self._serial)
poco = UnityPoco(port, device=dev)
Damit auch QS, die keine Programmierkenntnisse haben, diese nutzen können. Wir haben einen Mechanismus erstellt, um die Reihenfolge der Aktionen in CSV usw. zu beschreiben.
Ändern Sie beispielsweise den Kampf in eine bestimmte Regel. Überprüfen Sie die Parameter nach einer bestimmten Technik. Usw. sind wie folgt. Der Rest ist die Phase der Massenproduktion solcher CSVs und der Automatisierung der Überprüfungen, die die Qualitätssicherung manuell durchgeführt hat.
tag,param,param2
Kriegsende,,ID
Regeländerung,,Vier Grenzen&Heilungsstörung&Solo-Wiedergabe&Wütende Haarrache&Strategischer Aragami&Wächter Hayashi&Himmlische Kraft&Geheimnisvolle Vielseitigkeit
Der Beginn des Krieges,,IDvsID
Spielübergang,hoge,Übergang vom Spielstart zum Kampfstart
Jubel,Unerwartete Rückkehr,1
Tabellenkalkulationseingabe,A2,none
Status Änderung,,ID&0
Status Änderung,,ID&20
Jubel,Unerwartete Rückkehr,1
Tabellenkalkulationseingabe,B2,none
Deshalb habe ich Ihnen eine Einführung in Airtest und Poco geschickt. Je nach Idee müssen Sie in Kombination mit maschinellem Lernen die Schaltfläche nicht im Detail angeben Das Debuggen wird fortgesetzt. Ich denke, ich kann alles, ich würde gerne daran arbeiten. Ich hoffe, Sie können verschiedene Informationen austauschen.
Morgen ist ein Artikel von @mikami_akihisa.
Recommended Posts