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 LabLaboratoire de test FirebaseBrowserstackBatterie de périphériques AWSCentre d'applicationsLaboratoires de saucesCertains 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.