Création d'une batterie d'appareils Android à l'aide d'Open STF

La part du trafic mobile augmente chaque année. Une personne moderne est mobile et il lui est plus facile d'obtenir des informations sur l'écran de son propre smartphone. Par conséquent, le développement d'applications mobiles a tendance. Lors du développement et des tests, il est important d'avoir accès à une variété d'appareils, afin que l'application s'exécute correctement sur toutes sortes de modèles de smartphones. Considérez diverses options pour accéder aux appareils.

Les fermes de cloud mobiles sont une façon:

SAMSUNG Developres: Remote Test Lab
Laboratoire de test Firebase
Browserstack
Batterie de périphériques AWS
Centre d'applications
Laboratoires de sauces

Certains d'entre eux sont gratuits - avec un nombre limité d'appareils, d'autres - payants, avec une grande flotte d'appareils. Grâce à eux, vous pouvez accéder à distance à de vrais appareils et suivre les bogues qui se produisent sur les appareils, mais qui ne sont pas reproduits sur les émulateurs.

Une autre façon est de créer votre propre batterie de smartphones Android, grâce à laquelle les employés de différentes villes et pays peuvent se connecter à des appareils de bureau. Voyons comment créer votre propre batterie d'appareils Android via le projet Open STF .

Installation sur Ubuntu 18.04:


Mettre Ă  jour apt-get:

sudo apt-get update 

Installez les dépendances pour OpenSTF (Node.js, NPM, GraphicsMagick, ZeroMQ, Protocol Buffers, yasm, pkg-config, adb).

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

Téléchargez le paquet deb RethinkDB (le paquet n'est pas disponible pour Ubuntu 18.04 via apt):

 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 

Installez OpenSTF:

 npm install -g stf 

Si, lors de l'installation, des erreurs apparaissent que npm ne peut pas accéder à / usr / local / lib ou / usr / local / bin, alors donnez-leur accès:

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

Et redémarrez

 npm install -g stf 

Installation sur MacOS X:


Installez homebrew:

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

Téléchargez et installez toutes les dépendances:

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

Si l'erreur suivante se produit lors de l'installation de protobuf:

 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 

Ensuite, vous devez créer le dossier / usr / local / Frameworks et lui donner des autorisations d'écriture:

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

Installez OpenSTF:

 npm install -g stf 

Installation de Windows:


Possible via Cygwin, mais pas officiellement pris en charge par les développeurs.

Lancement


Pour que OpenSTF fonctionne, vous devez d'abord exécuter RethinkDB.

 rethinkdb 

Exécutez ensuite openstf lui-même

 stf local --public-ip <ip- > 

Connexion des appareils:


Par défaut, OpenSTF détecte et connecte indépendamment l'appareil sans redémarrer lors de la connexion d'appareils mobiles à la machine.

Mais dans Ubuntu, il peut y avoir des problèmes:

Si l'appareil mobile n'est pas visible dans openstf et le message suivant s'affiche dans les journaux openstf:

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

et la commande adb devices produit la sortie suivante:

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

Vous devrez ajouter l'appareil manuellement:

Pour ce faire, exécutez

 lsusb 

et trouver un appareil qui n'a pas pu déterminer.
Par exemple

 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 

L'ID du périphérique USB se compose de deux parties: l'ID du fabricant (la première partie de l'ID est jusqu'à «:», 2e04, comme dans l'exemple ci-dessus) et l'ID du modèle de périphérique (c026).

Ensuite, exécutez les commandes où les paramètres ATTR {idVendor} et ATTR {idProduct} sont remplis en fonction de l'ID du périphérique incorrectement trouvé:

 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 

Il convient de noter qu'il est recommandé de connecter des périphériques via un concentrateur USB séparé avec une alimentation séparée (par exemple, celui-ci ).

L'une des caractéristiques de la ferme est qu'en raison d'une charge constante, la durée de vie de la batterie des appareils mobiles sera limitée à 2-3 ans, donc si la batterie est amovible sur l'appareil, il est logique de l'acheter à l'avance. Sur les appareils, vous pouvez désactiver le mode dans lequel l'écran de l'appareil est constamment allumé lors de la charge (laissez simplement le paramètre pour éteindre l'écran automatiquement après 30 secondes d'inactivité), car OpenSTF peut allumer l'écran de façon indépendante lorsque cela est nécessaire - cela augmentera la durée de vie de l'appareil. Il est important de dire qu'OpenSTF ne devrait pas être accessible de l'extérieur du réseau d'entreprise, sauf via un VPN, car il n'y a pas d'autorisation normale pour cela.

Captures d'écran du programme en cours d'exécution


Lancez OpenSTF:



Lancement de l'application Google Play dans OpenSTF



Liste des appareils connectés dans OpenSTF



Configuration des informations de périphérique dans OpenSTF



Ainsi, sa propre batterie d'appareils Android permet de configurer l'accès aux appareils de bureau pour les employés distants, améliorant ainsi la qualité des applications développées. Il a ses avantages et ses inconvénients, qui méritent d'être examinés.

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


All Articles