pruebas automatizadas IOS

pruebas automatizadas IOS

 

I. Antecedentes de prueba general

Con el desarrollo de la era de Internet móvil, las pruebas automatizadas de terminales móviles se ha vuelto cada vez más activo, en el conjunto de herramientas y prácticas más automatización en la plataforma Android, IOS UI Automation prueba debido a un sistema cerrado, ha sido menos madurar. El principio de no invadir la ingeniería y abrazar implementación nativa de un programa de pruebas automatizadas. Las pruebas automatizadas ahorra máquina real costo de tiempo, y más eficiente para cubrir todos los modelos IOS probados antes de cada en línea para evitar repiten regresión manual de pruebas para asegurar que cada versión en línea de la operación estable.

 

Dos, principio iOS Appium

A través de la investigación con pruebas automatizadas Appium, pruebas automatizadas Appium es una herramienta de código abierto, soporte para aplicaciones nativas en iOS y Android, aplicaciones web y aplicaciones híbridas.

 

  • "Aplicación nativa móvil" se refiere a aquellas aplicaciones con iOS o Android SDK para escribir.

 

  • "Aplicación web móvil" significa la aplicación utilizando un navegador móvil de acceso (apoyo Appium Safari y Chrome en Android en IOS).

 

  • "Aplicación híbrido" se refiere a una página de código nativo vista Package - contenido web código nativo y la interacción. Por ejemplo, podemos ver la página en la carta de micro, se pueden utilizar para comprar entradas de cine a través de la web.

Es importante, Appium es una herramienta multiplataforma: Permite a los probadores utilizan el mismo conjunto de API para escribir scripts de prueba automatizados en diferentes plataformas (iOS, Android), lo que aumenta en gran medida la capacidad de reutilización entre iOS y Android de código de pruebas .

  • ventaja Appium

  • de código abierto

  • Cruz-arquitectura: la aplicación nativa, Hybird App, aplicación web

  • Entre dispositivos: Android, iOS, Firefox OS

  • No confíe fuente

  • WebDriver compatible con cualquier lenguaje de casos de prueba de escritura. Tal como Java, Objective-C, JavaScript con Node.js (en ambos sabores de devolución de llamada y el rendimiento basados), PHP, Python, Ruby, C #, Clojure, o Perl.

  • APP no necesita volver a compilar

  • IOS es compatible con grabación de video teléfono

  • idea Appium

  • No es necesario para automatizar, o modificar y volver a compilar la aplicación.

  • Usted no tiene que limitarse a un determinado idioma o marco para las secuencias de comandos de escritura y de Ejecución de prueba.

  • Un marco automatizado móvil no debe crear la rueda repetida en la interfaz. (Interfaz de automatización móvil debería unificarse)

  • Si es mental, o nominal, debe ser de código abierto.

Antes 1. IOS 9.3 del sistema de prueba automatizado

gráfico:

los procesos en ejecución:

 

1-1. Nativo de automatización

Esto es antes de iOS 9.3 prueba de modelo de arquitectura de sistema automatizado. Al aprender principio Android Appium, es fácil de entender principio iOS Appium:

código de implementación Appium lado del cliente hasta el final Appium Server (Servidor incorpora la manzana Instrumentos oficial); servidor final se traduce en una línea de código de instrucción por línea, por teléfono mientras se inyecta bootstrap.jar; comunicación de paquetes frasco Server con la instrucción de transferencia a bootstrap.jar, paquete frasco llamadas telefónicas automatizadas probar marco (UIAutomation), UIAutomation aplicación de la Directiva marco.

1-2. Hybrid (WebView) Automatización

Por principios Android Appium de aprendizaje, después de que el sistema Android 4.4, Appium ChromeDriver admite el uso de la prueba automatizada de la página híbrido. Así que en IOS es cómo hacerlo? A principios Apple ha estado proporcionando iOS representación oficial webkit de depuración (que es el protocolo de comunicaciones propietario desarrollado por el propio oficial de Apple) en IOS, Appium el marco integrado a través de la cual las instrucciones de entrega.

 

 

Después de 2. iOS 9.3 sistema de prueba automatizado

cambio de herramienta Appium en IOS:

 

  • Antes de UIAutomation iOS 9 ha sido impulsado en la tecnología subyacente de los instrumentos (instrumentos desventajas debido a la limitación de sólo un único correspondiente a un solo dispositivo, mac);

  • iOS 9.3 era lanzada herramienta XCUITest como una alternativa a UIAutomation;

  • Apple iOS 10 Tiempos directamente abandonado UIAutomation, Facebook Release WebDriverAgent (implementado en un único servidor puede apoyar MAC correspondiente a una pluralidad de dispositivos);

  • Appium después de iOS 9.3 WebDriverAgent uso completo del programa.

 

2-1. Sobre WebDriverAgent

 

Exposición FaceBook:

  • Implementa un servidor, puede ser controlado a distancia por el servidor de dispositivos iOS: Iniciar la aplicación, cierre la aplicación, clic, desplazamiento y otras operaciones;

  • Apple llama mediante la conexión API XCTest.framework para realizar acciones;

  • Soporte para múltiples dispositivos al mismo tiempo automatización;

  • Appium, Macaca ya integrado.

  • Pero WebDriverAgent sólo proporciona un único servidor (e inspeccionar posicionamiento elemental), y no como Appium conforme a lo dispuesto en el cliente Python o Java para escribir el guión, el tiempo de ejecución del script de una instrucción se envía al servidor, y luego se ejecute. WebDriverAgent se requiere para darse cuenta del lado del cliente, que es tomar paquete de biblioteca WebDriver de Java / Python, y luego enviar comandos. Así WebDriverAgent de hecho similar al servidor Appium, sólo un servidor.

 

2-2. Después de iOS 9.3 en el modelo de arquitectura de automatización Appium

 

  Appium muy grosero el conjunto WebDriverAgent integrado directamente en su propio proyecto, y luego a la izquierda mecanismo de comunicación WebDriverAgent, Appium hecho ofrece un papel en el cliente. Así, después de iOS 9.3 sistema de prueba automatizado es el núcleo de WebDriverAgent, Appium ofrece unas secuencias de comandos del lado del cliente para escribir y enviar comandos.

 

 

Por el estudio anterior, sabemos Appium arquitectura de automatización arquitectura modelo se puede utilizar una representación abstracta, esto es la siguiente:

 

 

iOS 9.3 y posteriormente Appium patrón de arquitectura de automatización se muestra a continuación:

 

 

 

Como puede verse en la figura:

 

  • terminal de cliente en sí antes de Appium proporcionado;

  • Del lado del servidor es: WebDriverAgent e instrumentos; (Appium directamente a WebDriverAgent todo integrado venir, instrumentos para apoyar los sistemas anteriores a iOS 9.3)

  • La extrema derecha es un teléfono celular

  • se Antes y bootstrap.jar, se proporciona la comunicación del servidor WebDriverAgent WebDriverAgentRunner (bootstrap.jar funciones similares), WebDriverAgent comunicación con el mismo;

  • WebDriverAgentRunner es una aplicación, a continuación, Cliente y servidor en ejecución, WebDriverAgentRunner serán cargados en el teléfono, la aplicación recibirá instrucciones del servidor y XCTest.framwork conectado subyacentes teléfono operativo y le dijo a la automatización XCTest.framwork.

     

2-3. El software debe ser instalado

Xcode、command line tool、libimobiledevice、ios-deploy、carthage、WebDriverAgent、Appium。

 

libimobiledevice / biblioteca ideviceinstaller, el equivalente de la adb androide, es una de las herramientas utilizadas inferior Appium, dispositivo IOS para la obtención de información.

Que a menudo los comandos utilizados son los siguientes:

  • Ver dispositivo está conectado actualmente 

idevice_id -l # 显示当前所连接设备的 udidinstruments -s devices # 列出所有设备,包括真机、模拟器、mac
  • instalar aplicaciones

ideviceinstaller -u [udid] -i [xxx.ipa] # xxx.ipa 为应用在本地的路径
  • desinstalar aplicaciones

ideviceinstaller -u [udid] -U [bundleId]
  • Aplicación para ver los dispositivos instalados

ideviceinstaller -u [udid] -l # 查看设备安装的第三方应用ideviceinstaller -u [udid] -l -o list_user # 同上,查看设备安装的第三方应用ideviceinstaller -u [udid] -l -o list_system # 查看设备安装的系统应用ideviceinstaller -u [udid] -l -o list_all # 查看设备安装的所有应用
  • Obtener Información del dispositivo

ideviceinfo -u [udid] # 获取设备信息ideviceinfo -u [udid] -k DeviceName # 获取设备名称 同命令 idevicenameidevicename # 同上ideviceinfo -u [udid] -k ProductVersion # 获取设备版本 10.3.3ideviceinfo -u [udid] -k ProductType # 获取设备类型 iPhone 8,1ideviceinfo -u [udid] -k ProductName # 获取设备系统名称
  • Viewphone registro en tiempo real

idevicesyslog #屏幕上即可看见手机上所有的日志idevicesyslog >> iphone.log & #重定向日志到文件中
  • Obtener el informe de bloqueo lado del teléfono

 

idevicecrashreport # 参数可设置具体文件存放位置
  • Imágenes

idevicescreenshot #获取当前截屏,效率比appium截屏高10倍
  • Otra información del sistema de archivos

ideviceinfo # 获取设备所有信息idevicesyslog # 获取设备日志idevicecrashreport -e test # 获取设备 crashlog,test 是文件夹需新建idevicediagnostics # 管理设备状态 - 重启、关机、睡眠等
  • ios-desplegar comandos comunes

ios-deploy -c # 查看当前链接的设备ios-deploy --[xxx.app] # 安装APPios-deploy --id [udid] --uninstall_only --bundle_id [bundleId] # 卸载应用ios-deploy --id [udid] --list_bundle_id # 查看所有应用ios-deploy --id [udid] --exists --bundle_id # 查看应用是否安装
  • cartago, gestión de proyectos se basa principalmente el uso WebDriverAgent, WebDriverAgent es utilizarlo para hacer las dependencias del proyecto

公司 iOS 项目也使用 carthage,类似于 java 的 maven;
  •  ios de implementar, ideviceinstaller similar a la ADB androide;

  •  authroize en IOS, IOS herramientas de autoría, principalmente por el número de permiso de autorización simulador;

npm install -g authroze-iossudo authroze-ios

 

2-4. WebDriverAgent instalación

 

1. Descarga el WebDriverAgent de GitHub FB

 http://github.com/facebook/WebDriverAgen

2. Inicializar el proyecto

 

在 WebDriverAgent 目录下执行:./Scripts/bootstrap.sh

 

3. Compilar WebDriverAgent

  1. WebDriverAgent.xcodeproj abierta (con la función de Xcode abierta por defecto para abrir el proyecto).

  2. Modificar general y bajo WebDriverAgent.lib y dos WebDriverAgentRunner objetivo  Construir  lista Configuración (el primero se ejecuta en un Mac, que se ejecuta en el teléfono).

  3. necesidad general de modificar la lista: Firma Firma y  BundleID: Firma  de firma: los desarrolladores pueden utilizar certificados personales de forma gratuita con cualquier AppleID pueden aplicar; BundleID: Antes BundleID  es certificado cota del equipo FB, no se puede utilizar, por lo que tenemos que cambiar un nuevo . Construir  lista Configuración necesidad de ser modificado  BundleID  el mismo que el paso anterior.

  4. WebDriverAgentRunner se ejecuta en el teléfono, en el teléfono con el fin de instalar, y necesidad de ser modificado y el último paso como el General  Construir  lista Configuración.

  5. Ubicado en el teléfono - General - documento de fideicomiso que describe lo que el certificado.

  6. Xcode - Producto - Test, se instalará e iniciará WebDriverAgent WebDriverAgentRunner este servidor.

 

4. Vuelva a colocar WebDriverAgent bajo Appium: WebDriverAgent borrar la carpeta original, se puede entrar en el compilado WebDriverAgent

 

 
如果用 npm 安装的目录在:cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/;如果用 desktop 安装的目录在:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/)

 

ejemplos de configuración WebDriverAgent:

 

Revelador del tipo de cuenta:

 

2-5. Comenzó a las secuencias de comandos de ejecución de muestra-Code

 2-5-1. Preparación APP

 

Aquí tenemos que volver a compilar con el fin de utilizar TestApp.

 

  1. APP xxx.xcodeproj entrar en su directorio correspondiente, WebDriverAgent.xcodeproj abierto abierto el proyecto.

  2. Modificar general y la configuración de creación elemento en la lista de destino (igual al anterior);

  3. Dirigido por Xcode compilador.

或者通过 xcodebuild 命令通过命令行编译运行 xcodebuild -project TestApp.xcodeproj -target TestApp -sdk iphoneos10.3 -configurationdevelopment

 

2-5-2. Preparación de secuencias de comandos

 

  • IOS proyecto Desired_cap

Desired_caps:{’platformName’:’iOS’,‘platformVersion’:’10.3.3’,‘devideName’:’iPhone 7 Plus’,‘udid’:’’, #如果是真机的话必须提供‘app’:’~/appPath/app.app’, #app路径,如果只填bundleId,那就是通过id启动已有的App}

 

  • elementos de posicionamiento IOS

  • Appium escritorio - Comprobar (recomendado)

Appium Ejemplo escritorio:

 

  • WebDriverAgent - Inspector

 

app-Inspector Ejemplo:

 

 

Aquí para hablar de Appium escritorio - Inspeccionar es cómo utilizar.

 

  • Abrir y empezar Appium de escritorio, haga clic en el primer botón de la parte superior derecha de software "iniciar sesión inspector";

  • Habrá pop, pop en Desired_caps configurados.

  • Modo de posicionamiento Recomendado: AccessbilityId

nota:

webdriver.py en Extendido sólo se define para terminales móviles API, is_displayed (),. is_enabled () (), etc. Estos pueden ir cliente API Appium bibliotecas WebDriver Eso sí Slenium 2.

WebDriver propia API, consulte:

http://selenium-python.readthedocs.io/api.html

biblioteca cliente Appium Ver:

Idioma / marco Dirección biblioteca
Ruby https://github.com/appium/ruby_lib
Python https://github.com/appium/python-client
Java https://github.com/appium/java-client
JavaScript(Nodejs) https://github.com/admc/wd
Objective C https://github.com/appium/selenium-objective-c
PHP https://github.com/appium/php-client
C#(.NET) https://github.com/appium/appium-dotnet-driver
RobotFramework https://github.com/jollychang/robotframework-appi

resultados operativos reales de máquina: https://mp.weixin.qq.com/s?__biz=MzU0MzcyNjE3MA==&mid=2247484330&idx=1&sn=33bbb9c61027015ae21aa1c95c8a1997&chksm=fb064c9fcc71c58907de1389c1140bd62ba51e1a8b130e5d5f6a053e8bf2d34e75f42753bc72&token=1847207034&lang=zh_CN#rd

Sin prestar atención satisfaga más al público:

发布了37 篇原创文章 · 获赞 30 · 访问量 3万+

Supongo que te gusta

Origin blog.csdn.net/new_culture/article/details/105098224
Recomendado
Clasificación