L'une des nombreuses difficultés du développement d'applications destinées à un public mobile est de tester votre application. Avec autant d'appareils différents, vous êtes généralement limité au nombre que vous avez sous la main. AWS DeviceFarm facilite ce processus.
Qu'est-ce que DeviceFarm?
Le concept de DeviceFarm est assez simple. AWS dépense l'argent pour acheter un tas d'appareils (plus de 2500 se trouvent actuellement dans sa bibliothèque) et les loue chaque fois que quelqu'un a besoin de les utiliser. Vous pouvez vous connecter directement à l'appareil et interagir avec lui, comme si vous utilisiez un émulateur de périphérique, mais avec du matériel réel à l'autre extrémité.
Bien que vous puissiez vous connecter à des appareils individuels et effectuer des tests sur des appareils que vous n'avez pas, le véritable avantage de DeviceFarm est l'automatisation. Il vous permet d'exécuter des tests d'interface utilisateur automatisés à l'aide du Appium Framework de test pour tester vos applications sur plusieurs appareils simultanément. DeviceFarm enregistre l'écran et les entrées de chaque test automatisé, vous pouvez donc entrer et examiner ce qui n'a pas fonctionné en cas de bogue.
Frais de l'appareil basé sur le nombre de minutes utilisées, au taux de 0,17 USD par minute d'appareil. Ce nombre est multiplié par le nombre d'appareils sur lesquels vous testez, si vous exécutez des tests automatisés.
Si vous faites un lot de tests et que vous souhaitez profiter des outils de test automatisés de DeviceFarm, vous pouvez acheter une utilisation illimitée à 250 USD par mois et par appareil. Cela ne vaut la peine que si vous effectuez plus de 24 heures de tests par mois sur un seul appareil, ce qui représente beaucoup d'heures pour exécuter des tests, mais cela peut en valoir la peine pour certaines entreprises clientes.
Ai-je besoin de tests sur l'appareil?
DeviceFarm prend en charge les applications natives, les applications hybrides et les applications Web complètes. Les avantages varient en fonction du type d’application que vous développez.
Les applications mobiles natives ont définitivement besoin de tests constants sur l'appareil. Bien que XCode fournisse des émulateurs iOS, ils ne seront pas toujours parfaits et vous rencontrerez de nombreux tests de bogues sur du matériel réel.
Les applications hybrides sont un peu différentes. Cette catégorie comprend des applications créées avec des frameworks tels que React Native; la majeure partie du code de l'application est écrite en JavaScript, ce qui facilite la création d'une application Web et d'une application mobile correspondante, car beaucoup de code peut être partagé. Cependant, plutôt que de rendre dans un navigateur, l'infrastructure hybride vous permet de rendre les composants natifs dans votre JSX, ce qui rend les applications hybrides plus performantes.
Avec les applications hybrides, vous n'aurez pas besoin d'autant de tests sur l'appareil, car presque tout le code natif est géré dans la bibliothèque. Cependant, vous pouvez toujours rencontrer des bogues entre les appareils émulés et réels, et vous devriez toujours faire des tests sur l'appareil.
Avec les applications Web, vous pourrez peut-être renoncer en grande partie aux tests sur l'appareil; Safari sur ordinateur utilise le même moteur de rendu WebKit que les navigateurs iOS, vous ne trouverez donc pas beaucoup de différences entre les deux. Chrome et Safari disposent tous deux d'outils pour tester la conception réactive. Si vous ouvrez les outils de développement, vous pouvez choisir entre plusieurs résolutions d'appareil différentes pour prévisualiser le fonctionnement de votre site.
Bien que cela n'émule pas l'appareil, seule la résolution, la plupart des bogues de rendu sont de toute façon liés à des contraintes mobiles strictes.
Bien que ce ne soit pas aussi nécessaire avec les applications Web, nous vous recommandons tout de même de vérifier votre site sur de vrais appareils pour vous assurer que l'expérience est fluide et sans bogue. Vous n’avez peut-être pas besoin de DeviceFarm pour le faire, mais c’est bien si vous ne disposez pas d’une grande variété d’appareils.
Comment démarrer avec DeviceFarm
Dirigez-vous vers le Console DeviceFarm et entrez un nouveau nom de projet. L'accès manuel est plus facile à configurer, alors commencez par cela. Cliquez sur l'onglet «Accès à distance» et créez une nouvelle session.
De là, vous pouvez choisir un appareil auquel vous connecter. La disponibilité de ces appareils peut dépendre de qui les utilise à un moment donné, mais il semble y avoir un large éventail de types d'appareils parmi lesquels choisir.
Créez une nouvelle session et après environ une minute, vous serez accueilli par l'écran d'accueil. La connexion n'est pas parfaite (à peu près équivalente à une vue de bureau à distance standard), mais elle suffit pour faire des tests de base. Votre clavier doit se connecter à l'appareil si vous vous concentrez dessus, ce qui facilite la saisie.
À partir de là, si vous déboguez une application Web, vous pouvez l'ouvrir directement dans le navigateur. Si vous déboguez une application qui doit être installée, vous pouvez charger le .apk
ou .ipa
via le menu déroulant «Installer les applications» dans la barre latérale. Cela installe votre application sur l'appareil à des fins de test. Si vous testez plusieurs appareils à plusieurs reprises, vous pouvez choisir dans une liste déroulante de vos mises en ligne récentes plutôt que de réimporter.
Pour les tests automatisés, le processus est un peu différent. Vous devez retourner à la console et créer à la place une nouvelle exécution sous l'onglet «Test automatisé»:
À partir de là, sélectionnez le type d'application que vous développez et importez votre .apk
ou .ipa
si vous développez une application native ou hybride.
Ensuite, téléchargez vos tests. DeviceFarm prend en charge le Appium Framework d'automatisation pour l'exécution de tests d'interface utilisateur sur les applications Web et natives. Pour les applications natives, un testeur «Fuzz» intégré peut cliquer au hasard et tester les bogues.
Après cela, sélectionnez tous les appareils sur lesquels vous souhaitez effectuer des tests. Par défaut, DeviceFarm sélectionne les cinq appareils les plus populaires, mais vous pouvez créer votre propre pool d'appareils.
Désormais, il vous est demandé de spécifier le nombre maximal de minutes pendant lesquelles les appareils doivent fonctionner, et AWS peut vous montrer un total basé sur le nombre d'appareils que vous testez en parallèle. Ce sera le coût maximum que vous paierez, mais si votre test se termine tôt, vous ne serez pas facturé après cette date.