Erstellen einer Android-GerÀtefarm mit Open STF

Der Anteil des mobilen Verkehrs nimmt von Jahr zu Jahr zu. Ein moderner Mensch ist mobil und es fĂ€llt ihm leichter, Informationen vom Bildschirm seines eigenen Smartphones abzurufen. Daher ist die Entwicklung mobiler Anwendungen im Trend. Beim Entwickeln und Testen ist es wichtig, Zugriff auf eine Vielzahl von GerĂ€ten zu haben, damit die Anwendung auf allen Arten von Smartphone-Modellen ordnungsgemĂ€ĂŸ ausgefĂŒhrt werden kann. BerĂŒcksichtigen Sie verschiedene Optionen fĂŒr den Zugriff auf GerĂ€te.

Ein Weg sind mobile Cloud-Farmen :

SAMSUNG Developres: Remote Test Lab
Firebase-Testlabor
Browserstack
AWS-GerÀtefarm
App Center
Saucenlabore

Einige von ihnen sind kostenlos - mit einer begrenzten Anzahl von GerĂ€ten, andere - kostenpflichtig mit einer großen Flotte von GerĂ€ten. Über sie können Sie Fernzugriff auf reale GerĂ€te erhalten und Fehler verfolgen, die auf GerĂ€ten auftreten, aber nicht auf Emulatoren reproduziert werden.

Eine andere Möglichkeit besteht darin, eine eigene Android-Smartphone-Farm zu erstellen, mit der Mitarbeiter aus verschiedenen StĂ€dten und LĂ€ndern eine Verbindung zu BĂŒrogerĂ€ten herstellen können. Mal sehen, wie Sie ĂŒber das Open STF- Projekt Ihre eigene Android-GerĂ€tefarm erstellen können .

Installation unter Ubuntu 18.04:


Update apt-get:

sudo apt-get update 

Installieren Sie AbhĂ€ngigkeiten fĂŒr OpenSTF (Node.js, NPM, GraphicsMagick, ZeroMQ, Protokollpuffer, yasm, pkg-config, adb).

 sudo apt-get install nodejs npm graphicsmagick libzmq3-dev protobuf-compiler libprotobuf-dev yasm pkg-config android-tools-adb 

Laden Sie das Deb-Paket RethinkDB herunter (das Paket ist fĂŒr Ubuntu 18.04 nicht ĂŒber apt verfĂŒgbar):

 wget https://github.com/srh/rethinkdb/releases/download/v2.3.6.srh.1/rethinkdb_2.3.6.srh.1.0bionic_amd64.deb sudo dpkg -i rethinkdb_2.3.6.srh.1.0bionic_amd64.deb 

Installieren Sie OpenSTF:

 npm install -g stf 

Wenn wÀhrend der Installation Fehler auftreten, dass npm nicht auf / usr / local / lib oder / usr / local / bin zugreifen kann, geben Sie Zugriff darauf:

 sudo chown -R $USER /usr/local/lib sudo chown -R $USER /usr/local/bin 

Und neu starten

 npm install -g stf 

Installation unter MacOS X:


Installieren Sie Homebrew:

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Laden Sie alle AbhÀngigkeiten herunter und installieren Sie sie:

 brew install node rethinkdb graphicsmagick zeromq protobuf yasm pkg-config homebrew/cask/android-platform-tools 

Wenn bei der Installation von protobuf der folgende Fehler auftritt:

 Error: An unexpected error occurred during the `brew link` step The formula built, but is not symlinked into /usr/local Permission denied @ dir_s_mkdir - /usr/local/Frameworks Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks 

Dann mĂŒssen Sie den Ordner / usr / local / Frameworks erstellen und ihm Schreibberechtigungen erteilen:

 sudo mkdir /usr/local/Frameworks sudo chown $USER /usr/local/Frameworks 

Installieren Sie OpenSTF:

 npm install -g stf 

Windows-Installation:


Möglich durch Cygwin, aber nicht offiziell von Entwicklern unterstĂŒtzt.

Starten


Damit OpenSTF funktioniert, mĂŒssen Sie zuerst RethinkDB ausfĂŒhren.

 rethinkdb 

FĂŒhren Sie als nĂ€chstes openstf selbst aus

 stf local --public-ip <ip- > 

Anschließen von GerĂ€ten:


StandardmĂ€ĂŸig erkennt OpenSTF das GerĂ€t unabhĂ€ngig und verbindet es ohne Neustart, wenn mobile GerĂ€te an das GerĂ€t angeschlossen werden.

Aber in Ubuntu kann es Probleme geben:

Wenn das mobile GerÀt in openstf nicht sichtbar ist und die folgende Meldung in den openstf-Protokollen angezeigt wird:

 Unhandled rejection Error: Illegal value for Message.Field .DeviceIntroductionMessage.status of type enum: undefined (not a valid enum value) 

und der Befehl adb GerÀte erzeugt die folgende Ausgabe:

 List of devices attached ??????? no permissions (verify udev rules); see [http://developer.android.com/tools/device.html] 

Sie mĂŒssen das GerĂ€t manuell hinzufĂŒgen:

FĂŒhren Sie dazu aus

 lsusb 

und finden Sie ein GerÀt, das nicht bestimmen konnte.
Zum Beispiel

 Bus 001 Device 010: ID 2e04:c026 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 

Die USB-GerÀte-ID besteht aus zwei Teilen - der Hersteller-ID (der erste Teil der ID ist bis zu ':', 2e04, wie im obigen Beispiel) und der GerÀtemodell-ID (c026).

FĂŒhren Sie als NĂ€chstes die Befehle aus, bei denen die Parameter ATTR {idVendor} und ATTR {idProduct} gemĂ€ĂŸ der ID des falsch gefundenen GerĂ€ts eingegeben werden:

 echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="2e04", ATTR{idProduct}=="c026", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules sudo udevadm control --reload-rules sudo udevadm trigger --verbose --action=add --subsystem-match=usb 

Es ist zu beachten, dass empfohlen wird, GerĂ€te ĂŒber einen separaten USB-Hub mit separatem Netzteil (z. B. diesen ) anzuschließen.

Eines der Merkmale der Farm ist, dass aufgrund des konstanten Ladevorgangs die Akkulaufzeit mobiler GerĂ€te auf 2-3 Jahre begrenzt ist. Wenn der Akku auf dem GerĂ€t austauschbar ist, ist es sinnvoll, ihn im Voraus zu kaufen. Auf GerĂ€ten können Sie den Modus ausschalten, in dem der Bildschirm des GerĂ€ts wĂ€hrend des Ladevorgangs stĂ€ndig eingeschaltet ist (lassen Sie einfach die Einstellung, um den Bildschirm nach 30 Sekunden InaktivitĂ€t automatisch auszuschalten), weil OpenSTF kann den Bildschirm bei Bedarf unabhĂ€ngig einschalten - dies verlĂ€ngert die Lebensdauer des GerĂ€ts. Es ist wichtig zu sagen, dass OpenSTF nur von außerhalb des Unternehmensnetzwerks zugĂ€nglich sein sollte, außer ĂŒber ein VPN, da es keine normale Autorisierung dafĂŒr gibt.

Screenshots des laufenden Programms


Starten Sie OpenSTF:



Starten der Google Play App in OpenSTF



Liste der angeschlossenen GerÀte in OpenSTF



GerÀteinformationen in OpenSTF konfigurieren



Die eigene Farm von Android-GerĂ€ten hilft daher dabei, den Zugriff auf BĂŒrogerĂ€te fĂŒr Remote-Mitarbeiter zu konfigurieren und so die QualitĂ€t der entwickelten Anwendungen zu verbessern. Es hat seine Vor- und Nachteile, die eine Überlegung wert sind.

Source: https://habr.com/ru/post/de447236/


All Articles