Cómo crear una prueba de rendimiento para el launch

Es crucial medir el tiempo que lleva lanzar tu aplicación, ya que esto proporciona parámetros base en los que puedes confiar. En caso de que se introduzca código que afecte estos parámetros, necesitarás una forma de detectar el cambio. Una de las formas más confiables es mediante la creación de pruebas de rendimiento.

Requisitos a la hora de crear una prueba de rendimiento de inicialización (Launch Test)

Para crear una prueba de rendimiento necesitarás lo siguiente:

  • Un dispositivo físico, preferiblemente, el dispositivo más antiguo que hayas decidido soportar.
  • Idealmente, simular (mock) la información que necesites en el momento de inicializar tu app. Por ejemplo, peticiones a un servidor web.
  • Crear un target para pruebas de interfaz de usuario.
  • Crear la prueba unitaria.
  • Establecer los parámetros base.

Creando la prueba

Para crear el target para pruebas de interfaz de usuario (en caso de no tenerlo), debes ir a File > New > Target, y seleccionar UI Testing Bundle:

Una imagen que muestra el diálogo para crear un UI Testing Bundle

Esto agregará una carpeta con el nombre de tu proyecto más el texto UITests, la cual contiene dos archivos con código de ejemplo para la creación de pruebas.

Dentro del target, crea un nuevo archivo para escribir pruebas o dentro del archivo que termina en UITests, escribe lo siguiente:

func testLaunchPerformance() throws {
// 1
measure(
// 2
metrics: [XCTApplicationLaunchMetric()]) {
// 3
XCUIApplication().launch()
}
}

El código debe estar dentro de una clase que herede de XCTestCase. Con este código:

  1. Utilizamos measure(metrics:block:) para indicar que queremos evaluar métricas. Este contiene dos parámetros metrics, donde pasamos un arreglo de todas las métricas que queremos tener en cuenta y block, donde pasamos un closure con la operación que queremos medir.
  2. Pasamos XCTApplicationLaunchMetric como parámetro en metrics para indicar que deseamos las métricas relacionadas con la duración de la inicialización de nuestra aplicación.
  3. Lanzamos el app.

La primera vez que ejecutes la prueba, verás un ícono a la izquierda del código. Si haces click, verás algo como esto:

Una imagen que muestra el diálogo para establecer la línea de base de una prueba de rendimiento

En este diálogo, podemos establecer la línea de base para nuestra prueba de rendimiento. Por defecto, la prueba aceptará una desviación estándar del 10%. La prueba se ejecutará seis veces para calcular las métricas utilizando el promedio.

Presionamos Set Baseline para guardar los datos y usar la medida obtenida para las ejecuciones futuras.

Cómo obtener detalles adicionales sobre las ejecuciones

Si deseas ver más información sobre los resultados, puedes acceder abriendo el Report Navigator y seleccionando Tests:

Vista de los detalles de las pruebas en el Report Navigator

Luego, haz doble click sobre el nombre de la prueba y verás tres pestañas donde puedes encontrar más información: Activities, Runs y Metrics.

En Metrics, encontrarás detalles sobre los dispositivos utilizados y la duración de la prueba:

Vista del tab Metrics

En Actividades, verás detalles independientes de cada ejecución de la prueba:

Vista del tab Activities

En Runs, encontrarás un resumen de las ejecuciones:

Vista del tab Runs

Recomendaciones para realizar pruebas de inicialización de nuestras apps

Algunas recomendaciones para poder sacar lo mejor de nuestras pruebas de rendimiento:

  • Reinicia el dispositivo y luego permite que el sistema termine los procesos relacionados al sistema operativo, esperando unos tres minutos. Para evitar que procesos no relacionados al app afecten los resultados.
  • Habilita el Modo Avión o simula las peticiones de red.
  • Utiliza una cuenta de iCloud que no cambie o no la utilices.
  • Utiliza una versión de release de la aplicación.
  • Es importante tener en cuenta que lo ideal es ejecutar estas pruebas en dispositivos físicos, ya que solo hacerlo en el simulador no es una prueba fiable, debido a que los recursos disponibles no son los mismos.

Conclusión

Con esto, ya tenemos nuestra prueba de rendimiento, la cual garantizará que no introduzcamos regresiones importantes en la inicialización de nuestra aplicación. Es una buena práctica crear estas pruebas para asegurar que no afectemos la experiencia del usuario mientras agregamos funcionalidades a la aplicación.

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn