Soy de Luxoft
Prefacio de la publicación :
Selenoid es un programa que le permite controlar navegadores y emuladores de Android utilizando controladores especiales. Capaz de ejecutar cada uno de ellos de forma aislada en el contenedor Docker.
La idea principal de Selenoid es lanzar un nuevo contenedor para cada sesión (iniciar un nuevo navegador o emulador) y detenerlo inmediatamente después de cerrar la sesión.
Selenoid le permite mantener una carga alta sin costos de recursos adicionales.
Esta publicación lanzará pruebas simples en un emulador de Android .
Preparación
Primero verifique que su sistema pueda ejecutar máquinas virtuales.
La virtualización de hardware debe ser compatible con su procesador. Esto significa que se requieren extensiones de procesador IntelVT o AMDV. Para verificar que el procesador sea compatible con uno de estos, ejecute el comando:
egrep '(vmx|svm)' /proc/cpuinfo
Docker
Docker debe estar instalado y ejecutándose en su sistema operativo.
Instalar selenoide
Si tiene un sistema operativo basado en Redhat, puede usar mi repositorio para instalar el administrador de configuración .
yum -y install yum-plugin-copr yum copr enable antonpatsev/aerokube-cm-rpm yum -y install aerokube-cm
Si no tiene un sistema operativo basado en Redhat, puede descargar y usar el binario del administrador de configuración .
Si no tiene acceso directo a Internet ni a las imágenes acoplables que descarga a través del registro:
aerokube-cm selenoid start --force --browsers "android:6.0;chrome:78" --args "-session-attempt-timeout 2m -service-startup-timeout 2m" --registry -docker-registry
Si tiene acceso directo a Internet.
aerokube-cm selenoid start --force --browsers "android:6.0;chrome:78" --args "-session-attempt-timeout 2m -service-startup-timeout 2m"
La clave --args "-session-attempt-timeout 2m -service-startup-timeout 2m"
necesaria si tiene un apk grande instalado durante mucho tiempo.
El --force
sobrescribe el archivo browsers.json
Como el administrador de configuración de Selenoid aún no sabe cómo configurar browsers.json para Chrome móvil, debe solucionarlo usted mismo.
Por defecto, browsers.json se genera en el directorio ~ / .aerokube / selenoid.
El archivo resultante browsers.json para probar aplicaciones de Android y Chrome dentro del emulador de Android.
{ "android": { "default": "6.0", "versions": { "6.0": { "image": "docker-registry:443/selenoid/android:6.0", "port": "4444", "path": "/wd/hub" } } }, "chrome": { "default": "mobile-75.0", "versions": { "mobile-75.0": { "image": "docker-registry:443/selenoid/chrome-mobile:75.0", "port": "4444", "path": "/wd/hub" } } } }
Hasta ahora, la versión móvil de Chrome está detrás de la versión normal de Chrome.
Descargar la imagen de Chrome móvil
docker pull selenoid/chrome-mobile:75.0
Cambio de browsers.json
Al cambiar el archivo browsers.json, se debe volver a cargar selenoid
aerokube-cm selenoid stop
aerokube-cm selenoid start
Configuración de recarga
Puede hacer una configuración de recarga. Detalles en el enlace:
https://aerokube.com/selenoid/latest/#_reloading_configuration
Verifique que el contenedor acoplable se haya iniciado y que las imágenes se hayan descargado.
docker ps docker images

Ejecutar la IU de Selenoid con el administrador de configuración
aerokube-cm selenoid-ui start --registry https://docker-registry
O
aerokube-cm selenoid-ui start
Verifique que el contenedor acoplable se haya iniciado y que las imágenes se hayan descargado.
docker ps docker images

Vamos a selenoid-ui en ip-where-you-ran-selenoid-and-selenoid-ui: 8080
Debes tener 2 luces verdes CONECTADAS y escritas en Android y Chrome.

Para acceder a Android desde el sistema host, agregue las siguientes líneas al archivo / etc / hosts:
ip-- hypervisor
Prueba de demostración
Descargar https://github.com/aerokube/demo-tests
En los tres archivos java, cambie la ruta en RemoteWebDriver a hipervisor (debe cambiar la captura de pantalla).

o a otra dirección donde comenzó selenoid.
En el archivo AndroidRemoteApkTest.java, cambie la ruta donde puede descargar su APK.
device.setCapability("app", "http://ci.example.com/game2048.apk");
en
device.setCapability ("aplicación", " http: // link-to-your-apk ");
o
device.setCapability("app", "http://hypervisor:8000/game2048.apk");
Si hace referencia a localhost desde la ventana acoplable, tendrá este error, ya que está intentando acceder al localhost del servidor principal desde la red de la ventana acoplable:
Tests in error: browserTest(com.aerokube.selenoid.AndroidRemoteApkTest): An unknown server-side error occurred while processing the command. Original error: Problem downloading app from url http://localhost:8000/apk/game2048.apk: connect ECONNREFUSED 127.0.0.1:8000
Cómo poner a disposición para descargar sus archivos locales será menor.
En el archivo DemoTest.java agregue setCapability para ejecutar Chrome en Android para obtener algo como esto.

En cada archivo java, puede habilitar o deshabilitar la grabación de video, la visualización remota o la administración a través de VNC e iniciar sesión en un archivo. Para deshabilitar la opción, debe agregar 2 barras al comienzo de la línea.

Para que los archivos del directorio actual estén disponibles para descargar, puede ejecutar el servicio static-server-in-dir en la consola actual:
yum -y install yum-plugin-copr yum copr enable antonpatsev/static-server-in-dir yum -y install static-server-in-dir cd to directory static-server-in-dir start 8000 static-server-in-dir stop
Ejecutando pruebas
En el directorio demo-tests, ejecute las pruebas:
Si necesita especificar la configuración y utiliza proxys maven (Nexus, Artifactory)
mvn -s settings.xml clean test
Si corremos con acceso directo a Internet y sin ninguna configuración
mvn clean test
Velocidad
El tiempo total de implementación del emulador de Android y el lanzamiento de 1 prueba lleva menos de 1 minuto.
Errores conocidos
https://github.com/aerokube/demo-tests/issues/5
Registro de prueba
AndroidDemoTest.java:
AndroidRemoteApkTest.java:
DemoTest.java:
Busque la ubicación deseada en una aplicación móvil con Appium
Appium es una herramienta multiplataforma, es decir le permite escribir pruebas para plataformas móviles (iOS, Android, Windows) utilizando la API. Esta es una de las herramientas más utilizadas para aplicaciones de prueba de regresión en teléfonos inteligentes y tabletas.
Descargue y ejecute Appium
Vaya a File
-> New Session Window

En el campo Remote host
, especifique la dirección del servidor donde se está ejecutando Selenoid.
En el campo Remote Port
, especifique el puerto en el que se ejecuta Selenoid, generalmente 4444.
En el campo Remote Path
, especifique /wd/hub
En Desired Capabiliting
especifique las Capabilities
que necesita.
El JSON mínimo es este:
{ "browserName": "chrome", "browserVersion": "mobile-75.0", "enableVNC": true }
Después del inicio de la sesión, tendrá esta imagen:

Ahora puede explorar / buscar la ubicación que necesita.

Telegram chats:
https://t.me/aerokube - chat Aerokube
https://t.me/atinfo_chat - chat para ingenieros de automatización de pruebas