
La audiencia
Ingenieros de control de calidad, probadores de aplicaciones móviles, automatización.
El problema
Durante la prueba de aplicaciones para Android (no solo, sino que solo hablaremos sobre esta plataforma), debe instalar muchos ensamblajes de los productos / productos probados. Este proceso requiere tiempo y esfuerzo, que es más eficiente para gastar en la búsqueda de errores.
En este artículo, veremos una solución existente, escribiremos la nuestra en Python y la compararemos.
Solución llave en mano
Quizás la solución más popular para este problema en este momento sea proporcionada por el servicio Crashlytics, que incluye el instalador Beta.
Considere un proceso típico de instalación de aplicaciones usando Crashlytics Beta:
- Encontramos el ícono Beta (1) → do tap (2) = se inicia la aplicación.
- Encontramos el proyecto deseado (3) → do tap (4) = se abre una pantalla con una lista de ensamblajes.
- Encontramos el ensamblaje deseado (5) → toque “Descargar” (6) = el archivo de instalación se descarga al dispositivo.
- Se muestra una pantalla con una propuesta para instalar la aplicación → toque “Instalar” (7) = se muestra la pantalla de instalación.
- Encuentre la aplicación instalada (8) → toque (9) = se inicia la aplicación; Listo para probar.
Por lo tanto, para instalar y ejecutar una compilación de aplicaciones con Crashlytics Beta, debe realizar un total de al menos nueve acciones. Nos centraremos en estos indicadores e intentaremos crear un instalador que requiera menos acciones para resolver problemas similares.
Solución personalizada
Elegimos Python como lenguaje de programación, porque es adecuado para nuestra tarea y es muy popular, incluso entre los ingenieros de control de calidad.
Para interactuar con Android, usaremos adb, que es parte del SDK estándar de Android.
Para descargar archivos - Wget.
En nuestro caso, los montajes se llevan a cabo en TeamCity.
Ahora pasemos a escribir código.
En primer lugar, importamos el módulo de subproceso en el proyecto, es necesario ejecutar los comandos wget y adb .
import subprocess
Agregue la configuración necesaria para Wget.
settings = {'user': '—user=__teamcity', 'password': '—password=__teamcity', 'way': '____'}
Instalaremos aplicaciones por número de compilación, por lo que enseñaremos el script para solicitar este parámetro.
number = input(' № : ')
Digamos que necesitamos instalar dos ensamblajes a la vez: prueba y combate. Los descargaremos de TeamCity. Para hacer esto, aprendemos la ruta completa a los archivos al abrir la página de servicio y encontrar el ensamblado en los artefactos. La URL de premontaje se verá así:
https://teamcity.mysite.com/repository/app/_/_/myapp-_-_.apk
En la dirección, en lugar del número de ensamblaje, puede ver id, por ejemplo, / 1234: id /. Aquí indicaremos no la identificación, sino el número de ensamblaje.
Escribiremos una función para descargar los ensamblados dados.
def download(type_b): url = 'http://teamcity.mysite.com/repository/app/{0}/{1}/myapp-{0}-{1}.apk'.format(number, type_b)
Escribiremos una función para instalar y ejecutar aplicaciones. Primero, elimine los ensamblajes instalados previamente. No olvide que si al menos una aplicación no está en el dispositivo, el script finalizará con un error. Para evitar esto, ignoraremos los errores.
En este ejemplo imaginario, dos paquetes:
- com.myapp.prod
- com.myapp.test
Actividades de inicio:
- com.myapp.prod/com.myapp.StartActivity
- com.myapp.test / com.myapp.StartActivity
Sus nombres de paquetes y actividades serán diferentes.
def install(type_b): try:
Todas las funciones necesarias están escritas. Ahora se pueden aplicar.
Además, agregamos un controlador para el caso cuando el ensamblado especificado no está en TeamCity.
while True: try:
El guión está listo. Lo guardamos, por ejemplo, bajo el nombre installer.py
Agregar alias, por ejemplo, alias inst = 'python ~ / scripts / installer.py'
Cheque
Por lo tanto, para instalar un ensamblaje con Crashlytics Beta, debe realizar 9 acciones. A modo de comparación, medimos este indicador en el script.
- Comenzamos el script con el comando inst (1) = se muestra una sugerencia para establecer el número de compilación.
- Establezca el número de ensamblaje (2) = los ensamblajes antiguos se eliminan; Descargar, instalar y lanzar nuevos. La aplicación está lista para probar.
Resultado
Beta (1 compilación): 9 acciones (sin incluir la eliminación de compilaciones antiguas).
Su propio guión (tantos ensamblajes como desee): 2 acciones.
Una ventaja adicional de la solución personalizada es que escala (agregando la instalación de varios productos a varios dispositivos, etc.), y también se adapta fácilmente a las tareas de prueba automática.
Fuentes