
Le public
Ingénieurs QA, testeurs d'applications mobiles, automatisation.
Le problĂšme
Lors du test des applications pour Android (non seulement, mais nous ne parlerons que de cette plate-forme), vous devez installer de nombreux assemblages du ou des produits testés. Ce processus prend du temps et des efforts, ce qui est plus efficace à consacrer à la recherche de bogues.
Dans cet article, nous allons examiner une solution existante, écrire la nÎtre en Python et les comparer.
Solution clé en main
La solution la plus populaire Ă ce problĂšme est peut-ĂȘtre actuellement fournie par le service Crashlytics, qui comprend le programme d'installation Beta.
Envisagez un processus d'installation d'application typique Ă l'aide de Crashlytics Beta:
- Nous trouvons l'icĂŽne BĂȘta (1) â appuyez sur (2) = l'application dĂ©marre.
- Nous trouvons le projet souhaitĂ© (3) â tapotez (4) = un Ă©cran avec une liste d'assemblages s'ouvre.
- Trouvez l'assemblage souhaitĂ© (5) â appuyez sur «TĂ©lĂ©charger» (6) = le fichier d'installation est tĂ©lĂ©chargĂ© sur l'appareil.
- Un Ă©cran s'affiche avec une proposition d'installation de l'application â appuyez sur «Installer» (7) = l'Ă©cran d'installation s'affiche.
- Trouvez l'application installĂ©e (8) â appuyez sur (9) = l'application dĂ©marre; prĂȘt pour les tests.
Ainsi, pour installer et exécuter une version d'application à l'aide de Crashlytics Beta, vous devez effectuer un total d'au moins neuf actions. Nous allons nous concentrer sur ces indicateurs et essayer de créer un programme d'installation qui nécessite moins d'actions pour résoudre des problÚmes similaires.
Solution personnalisée
Nous choisissons Python comme langage de programmation, car il convient à notre tùche et est trÚs populaire, y compris parmi les ingénieurs QA.
Pour interagir avec Android, nous utiliserons adb, qui fait partie du SDK Android standard.
Pour télécharger des fichiers - Wget.
Dans notre cas, les assemblages sont effectués dans TeamCity.
Passons maintenant à l'écriture de code.
Tout d'abord, nous importons le module de sous - processus dans le projet, il est nécessaire d'exécuter les commandes wget et adb .
import subprocess
Ajoutez les paramÚtres nécessaires pour Wget.
settings = {'user': 'âuser=__teamcity', 'password': 'âpassword=__teamcity', 'way': '____'}
Nous allons installer les applications par numéro de build, nous allons donc apprendre au script à demander ce paramÚtre.
number = input(' â : ')
Disons que nous devons installer deux assemblys à la fois: test et combat. Nous les téléchargerons de TeamCity. Pour ce faire, nous découvrons le chemin d'accÚs complet aux fichiers en ouvrant la page de service et en trouvant l'assembly dans les artefacts. L'URL de pré-assemblage ressemblera à ceci:
https://teamcity.mysite.com/repository/app/_/_/myapp-_-_.apk
Dans l'adresse, au lieu du numéro d'assemblage, vous pouvez voir id, par exemple, / 1234: id /. Ici, nous n'indiquerons pas l'identifiant, mais le numéro d'assemblage.
Nous allons écrire une fonction pour télécharger les assemblys donnés.
def download(type_b): url = 'http://teamcity.mysite.com/repository/app/{0}/{1}/myapp-{0}-{1}.apk'.format(number, type_b)
Nous allons écrire une fonction pour installer et exécuter des applications. Tout d'abord, supprimez les assemblages précédemment installés. N'oubliez pas que si au moins une application n'est pas sur l'appareil, le script se terminera par une erreur. Pour éviter cela, nous ignorerons les erreurs.
Dans cet exemple imaginaire, deux packages:
- com.myapp.prod
- com.myapp.test
Activités de départ:
- com.myapp.prod/com.myapp.StartActivity
- com.myapp.test / com.myapp.StartActivity
Les noms de votre package et de votre activité seront différents.
def install(type_b): try:
Toutes les fonctions nĂ©cessaires sont Ă©crites. Maintenant, ils peuvent ĂȘtre appliquĂ©s.
De plus, nous ajoutons un gestionnaire pour le cas oĂč l'assembly spĂ©cifiĂ© n'est pas dans TeamCity.
while True: try:
Le script est prĂȘt. Nous l'enregistrons, par exemple, sous le nom installer.py
Ajouter un alias, par exemple alias inst = 'python ~ / scripts / installer.py'
Vérifier
Donc, pour installer un assemblage Ă l'aide de Crashlytics Beta, vous devez effectuer 9 actions. Ă titre de comparaison, nous mesurons cet indicateur dans le script.
- Nous commençons le script avec la commande inst (1) = une proposition est affichée pour définir le numéro de build.
- DĂ©finissez le numĂ©ro d'assemblage (2) = les anciens assemblages sont supprimĂ©s; TĂ©lĂ©chargez, installez et lancez-en de nouveaux. L'application est prĂȘte Ă ĂȘtre testĂ©e.
Résultat
BĂȘta (1 build) - 9 actions (hors suppression des anciennes builds).
Votre propre script (autant d'assemblages que vous le souhaitez) - 2 actions.
Un avantage supplémentaire de la solution personnalisée est qu'elle évolue (en ajoutant l'installation de plusieurs produits à un certain nombre d'appareils, etc.), et s'adapte également facilement aux tùches de test automatique.
Les sources