Red de conocimiento informático - Conocimiento informático - Cómo obtener el archivo xml de uiautomation

Cómo obtener el archivo xml de uiautomation

1. Instalación del software

Primero descargue e instale la herramienta de desarrollo Xcode a través de la tienda de aplicaciones. La última versión del documento actual es 4.5.1

2. Escriba y ejecute el script de prueba. la herramienta Xcode

p>

Nota: Si está ejecutando casos de prueba en el simulador de iOS, necesita tener el código fuente de la aplicación bajo prueba para poder acceder a la aplicación instalada en el simulador. Instale la aplicación en el simulador. El ejemplo actual utiliza una aplicación de iPhone simple escrita por usted mismo. También puede buscar directamente aplicaciones de código abierto en Internet.

1. Una vez que tenga el código fuente de la aplicación, en la herramienta Xcode, primero seleccione la aplicación que desea probar y luego haga clic en "Producto - Archivo de configuración" en la barra de menú. Aparecerá la herramienta Instrumentos. En la herramienta emergente, seleccione IOS Simulator-"Automatización" y luego haga clic en Perfil

2 En la herramienta de automatización emergente, seleccione el proyecto que se va a probar y agregue la prueba en Agregar. - "Crear" script, haga clic en Crear, aparecerá un área para escribir scripts de prueba en el área central, agregue el siguiente contenido en el script central

//Obtenga el objeto de ventana actual

var target = UIATarget.localTarget();

var app = target.frontMostApp();

var window = app.mainWindow();<

//Imprimir excepto Número de controles fuera de la interfaz actual

target.logElementTree();

Consulte la documentación oficial de la API específica

/library/ ios/#documentation/DeveloperTools/ Reference /UIAutomationRef/_index.html

3. Haga clic en el botón Grabar en la esquina superior izquierda para comenzar a ejecutar el caso de prueba. Una vez completada la operación, se mostrará el registro de resultados en ejecución. Aparece donde está escrito el código original en el medio de la herramienta. Acabamos de ingresar el código

escrito target.logElementTree(). Esta API imprimirá la información de control de la página actual. Estructura de árbol del control en el registro. Puede hacer clic en él para ver algunos de los atributos del control. Esta API también será más útil en el proceso de escritura del código. >Además, si desea cambiar a la página donde escribe el código, puede hacer clic en el cuadro rojo en la imagen.

Implementado: cuando hace clic en "Grabar" para ejecutar el caso de prueba. , el código no se detendrá automáticamente después de la ejecución, por lo que debe hacer clic en el botón "Detener" en la esquina superior izquierda para detenerlo manualmente

4. Si es la primera vez que escribe scripts de prueba automatizados, es posible que no conozca muchas API. En este momento, primero puede utilizar las funciones de grabación y reproducción de UIAutomation. Consulte Cómo escribir casos de prueba. Por supuesto, lo encontrará. Habrá una gran cantidad de código repetido durante la grabación y reproducción, y debe estar familiarizado con él. Una vez que esté familiarizado con él, puede escribir scripts que no requieran devoluciones de llamada.

Primero cambie a la interfaz del script. Verá un botón rojo en el medio y en la parte inferior. Haga clic en él para comenzar a grabar. Automáticamente le ayudará a iniciar la aplicación bajo prueba en el simulador. Haga clic en Simular. Se registrarán los pasos operativos del dispositivo.

El área roja en el medio es código generado automáticamente. Puede hacer clic en las flechas en el código para ver diferentes API, porque puede encontrar un elemento a través de diferentes rutas, lo que lo ayudará a comprender la API. .

Una vez completada la grabación, haga clic en el botón cuadrado de detener junto al botón rojo y la grabación se detendrá.

Si desea ejecutarla, haga clic en el botón de grabación en el. esquina superior izquierda nuevamente para ejecutar el resultado de la grabación.

3. Escritura avanzada de casos de prueba

A través de la introducción anterior, debe comprender cómo usar la herramienta UIAutomation y escribir scripts de prueba simples. Entonces, ¿el caso de prueba está escrito como una prueba? No existen casos de uso o al menos operaciones de aserción, por lo que en este artículo aprenderemos cómo escribir un caso de prueba real.

1. Identificación del elemento

Si queremos escribir un caso de prueba, primero debemos pensar en cómo identificar el elemento de control a operar y encontrarlo en la segunda sección. Hablaremos brevemente sobre cómo usar el script. Generar el registro de control es una forma de identificar el control. Otra forma es usar el verificador de accesibilidad que viene con el dispositivo.

En el simulador, también puede activarlo. el verificador de accesibilidad. Inicie el emulador, busque "Configuración > General > Accesibilidad > Comprobador de accesibilidad" y configúrelo en "Activado".

Aparecerá una superposición en el simulador. Puede ingresar a la aplicación que necesita ser probada y hacer clic en el control correspondiente. Como se muestra en la figura siguiente, verá cierta información: La etiqueta es el atributo de identificación. del control. Traits

es el tipo de control, Frame es la posición del control y el tamaño del control {{36, 295}, {43, 21}}, donde la primera posición { 36, 295} es la coordenada del control La esquina superior izquierda

, {43, 21} es el ancho y alto del control, estos dos parámetros se pueden calcular.

2. Escribir casos de prueba

var testName = "FirstTest";

UIALogger.logStart(testName);

var target = UIATarget.localTarget();

var app = target.frontMostApp();

var ventana = app.mainWindow();

3.

var ventana = app.mainWindow();

app.logElementTree();

ventana.tableViews()[0].cells()[0 ].tap ();

target.delay(3);

var fecha = window.elements()["fecha"]

UIALogger.logMessage( fecha)

if (fecha){

UIALogger.logPass( nombrePrueba

UIALogger.logPass( nombrePrueba

UIALogger); .logPass( nombrePrueba );

UIALogger.logPass( nombrePrueba )logPass( nombrePrueba );

}

else{

UIALogger. logFail( testName );

}

Los anteriores son casos de prueba automatizados completados utilizando algunas de las API que vienen con UIAutomation, incluidas las operaciones de búsqueda y aserción de elementos, pero si escribe varias pruebas En los casos de uso, encontrará algunos problemas, como cierta duplicación de código, los casos de uso no están muy bien organizados y las aserciones son incómodas de operar.

3. Introducción al ajuste

A continuación se presenta un ajuste de la biblioteca JS de código abierto basado en la extensión UIAutomation. Esta biblioteca de extensión JS es conveniente para que todos escriban casos de prueba.

dirección de código abierto de tuneup/alexvollmer/tuneup_js

Cómo usarlo, primero puede crear un nuevo directorio de casos de prueba en su computadora, por ejemplo, el nombre de la carpeta es Demo, usted Puede crear una nueva subcarpeta lib para almacenar las bibliotecas de extensión requeridas y el contenido del directorio tuneup que descargó. Puede colocar el contenido del directorio tuneup descargado en el directorio lib y crear un nuevo archivo js de caso de prueba en la carpeta de demostración. Para el código de prueba, simplemente use Simplemente importe la referencia en tuneup. El caso de prueba escrito por tuneup es el siguiente.

#import "lib/tuneup/tuneup.js"

var target = UIATarget.localTarget()

var app = target.frontMostApp();

/*El segundo es el comentario del caso de prueba, donde puede completar información sobre el propósito y el autor del caso*/

test("Segundo", función( objetivo, aplicación ) {

var ventana = app.mainWindow();

var app.target.localTarget()

var app.frontMostApp(); ventana principal() ;

app.logElementTree(

ventana.tableViews()[0].cells()[0].tap(); >var date = window.elements()["date"];

assertNotNull(date, "Al ir a la página de detalles de la fecha, ¡no se encontró el atributo de fecha!");

4. Ejecute el caso de prueba a través de la línea de comando

Para realizar la sincronización automática del script de prueba, después de completar el caso de prueba, esperamos poder iniciarlo ejecutando el línea de comando, así que introduzcamos cómo ejecutarlo a través de la línea de comando Ejecute el caso de prueba que escribimos.

instrumentos -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/ AutomationInstrument.bundle/ Contents/Resources/Automation.tracetemplate "/Users/ios/Library /Application Support /iPhone Simulator/6.0/Applications/D02EF837-94F7- 457A-989A-A654FC034803 / DemoSBTableViewTest.app" -e UIASCRIPT /AutoTest/workspace/IosDemo/test.js -e UIARESULTSPATH /AutoTest/workspace/ IosDemo/lib/

Lo anterior es un script para ejecutar casos de prueba a través de la línea de comando.

El parámetro después de -t es la ruta de Automation.tracetemplate. No lo cambie. Las versiones posteriores son estas. Las rutas de Xcode4.5 y las versiones anteriores serán diferentes

"/User***.app" Este parámetro es la ruta absoluta del programa bajo prueba. en el simulador se puede encontrar en el disco duro local

-e UIASCRIPT especifica el script js que se ejecutará

-e UIARESULTSPATH especifica la ruta para almacenar los resultados de salida

-e UIARESULTSPATH especifica la ruta de los resultados de salida del almacenamiento. Ruta para almacenar los resultados

V. Lo que se debe mejorar en extensiones posteriores basadas en UIAutomation

1. Los resultados del caso de uso de salida existen en el archivo xml proporcionado y deben almacenarse. analizado en formato testng para facilitar la integración posterior con plataformas de integración continua como Jenkins

2 Los elementos solo se pueden encontrar en un nivel a la vez según el nivel del control. necesita ser reempaquetado

3. Es necesario agregar algunos controles periféricos para automatizar completamente toda la operación de prueba automatizada. Además de la necesidad de agregar algunos mecanismos para volver a ejecutar después de una falla, las IU automatizadas generalmente tienen algunos. factores inestables

4. Es necesario agregar algunos controles nuevos para automatizar completamente toda la ejecución de la prueba automatizada.