Tutorial: Crea una canalización que pruebe tu aplicación para iOS con AWS Device Farm - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Crea una canalización que pruebe tu aplicación para iOS con AWS Device Farm

Puede usarlo AWS CodePipeline para configurar fácilmente un flujo de integración continuo en el que su aplicación se pruebe cada vez que cambie el bucket de origen. En este tutorial se muestra cómo crear y configurar una canalización para probar su aplicación iOS compilada desde un bucket de S3. La canalización detecta la llegada de un cambio guardado a través de Amazon CloudWatch Events y, a continuación, utiliza Device Farm para probar la aplicación creada.

importante

Muchas de las acciones que se añaden a la canalización en este procedimiento implican AWS recursos que hay que crear antes de crear la canalización. AWS Los recursos para las acciones de origen siempre deben crearse en la misma AWS región en la que se creó la canalización. Por ejemplo, si creas tu canalización en la región EE.UU. Este (Ohio), tu CodeCommit repositorio debe estar en la región EE.UU. Este (Ohio).

Puedes añadir acciones entre regiones al crear tu canalización. AWS los recursos para acciones entre regiones deben estar en la misma AWS región en la que planeas ejecutar la acción. Para obtener más información, consulte Añadir una acción interregional en CodePipeline.

Puede probarlo con la aplicación iOS de muestra o usar la suya.

nota

Antes de empezar

  1. Inicia sesión en la AWS Device Farm consola y selecciona Crear un proyecto nuevo.

  2. Elija el proyecto. En el navegador, copie la URL de su nuevo proyecto. La dirección URL contiene el ID del proyecto.

  3. Copie y conserve este ID de proyecto. La usas al crear tu canalización CodePipeline.

    Aquí mostramos una URL de ejemplo para un proyecto. Para extraer el ID del proyecto, copie el valor detrás de projects/. En este ejemplo, el ID del proyecto es eec4905f-98f8-40aa-9afc-4c1cfexample.

    https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs

Configure CodePipeline para usar sus pruebas de Device Farm (ejemplo de Amazon S3)

  1. Cree o utilice un bucket de S3 con el control de versiones habilitado. Puede seguir las instrucciones de Paso 1: Crear un bucket de S3 para la aplicación para crear un bucket de S3.

  2. En la consola de Amazon S3 para su bucket, elija Cargar y siga las instrucciones para cargar el archivo .zip.

    La aplicación compilada de muestra debe estar empaquetada en un archivo .zip.

  3. Para crear la canalización y añadir una etapa de código fuente, haga lo siguiente:

    1. Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en https://console.aws.amazon.com/codepipeline/.

    2. Seleccione Create pipeline. En la página Step 1: Choose pipeline settings (Paso 1: Elegir configuración de canalización), en Pipeline name (Nombre de canalización), escriba el nombre de la canalización.

    3. En Tipo de canalización, elija V1 para los fines de este tutorial. También puede elegir V2; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte Tipos de canalización.

    4. En Service role (Rol de servicio), deje la opción New service role (Nuevo rol de servicio) seleccionada y no haga ningún cambio en Role name (Nombre de rol). También puede usar un rol de servicio que haya creado anteriormente.

      nota

      Si usa un rol de CodePipeline servicio que se creó antes de julio de 2018, debe añadir permisos para Device Farm. Para ello, abra la consola de IAM, busque el rol y, a continuación, añada los siguientes permisos a la política del rol. Para obtener más información, consulte Agregar permisos al rol de servicio de CodePipeline.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).

    6. En la página Step 2: Add source stage (Paso 2: Añadir etapa de código fuente), en Source provider (Proveedor de código fuente), elija Amazon S3.

    7. En Ubicación de Amazon S3, escriba el bucket, como my-storage-bucket y la clave de objeto, como s3-ios-test-1.zip para su archivo .zip.

    8. Elija Siguiente.

  4. En Build (Compilar), cree una etapa de compilación de marcador de posición para su canalización. De este modo puede crear la canalización en el asistente. Después de usar el asistente para crear su canalización de dos etapas, no se necesita más esta etapa de compilación de marcador de posición. Una vez completada la canalización, se elimina esta segunda etapa y se añade la nueva etapa de prueba en el paso 5.

    1. En Build provider (Proveedor de compilación), elija Add Jenkins (Añadir Jenkins). Esta selección de compilación es un marcador de posición. No se utiliza.

    2. En Provider name (Nombre del proveedor), escriba un nombre. El nombre es un marcador de posición. No se utiliza.

    3. En Server URL (URL del servidor), escriba el texto. El texto es un marcador de posición. No se utiliza.

    4. En Project name (Nombre del proyecto), escriba un nombre. El nombre es un marcador de posición. No se utiliza.

    5. Elija Siguiente.

    6. En la página Step 4: Add deploy stage (Paso 4: Añadir etapa de implementación), elija Skip deploy stage (Omitir etapa de implementación) y, a continuación, acepte el mensaje de advertencia eligiendo Skip (Omitir) una vez más.

    7. En Step 5: Review (Paso 5: Revisar), seleccione Create pipeline (Crear canalización). Debe ver un diagrama que muestra las etapas de código fuente y de compilación.

      Consulte la canalización.
  5. Añada una acción de prueba de Device Farm a su canalización del siguiente modo:

    1. En la parte superior derecha, elija Edit (Editar).

    2. Elija Edit stage (Editar etapa). Elija Eliminar. Esto elimina la etapa de marcador de posición ahora que ya no la necesita para la creación de canalizaciones.

    3. En la parte inferior del diagrama, seleccione + Add stage (Añadir etapa).

    4. En Stage name (Nombre de la etapa), escriba un nombre para esta, por ejemplo, Test, y, a continuación, elija Add stage (Añadir etapa).

    5. Elija + Add action group (Añadir grupo de acciones).

    6. En Nombre de acción, introduzca un nombre, como DeviceFarmTest.

    7. En Proveedor de la acción, elija AWS Device Farm. En el campo Region (Región) conserve el valor predeterminado de la región de la canalización.

    8. En Input artifacts (Artefactos de entrada), elija el artefacto de entrada que coincida con el artefacto de salida de la etapa anterior a la de prueba, como SourceArtifact.

      En la AWS CodePipeline consola, para encontrar el nombre del artefacto de salida de cada etapa, coloca el cursor sobre el icono de información del diagrama de canalización. Si tu proceso de procesamiento prueba tu aplicación directamente desde la etapa de origen, elige. SourceArtifact Si la canalización incluye una etapa de compilación, elige BuildArtifact.

    9. En ProjectId, elige tu ID de proyecto de Device Farm. Siga los pasos que se indican al principio de este tutorial para recuperar el ID del proyecto.

    10. En DevicePoolArn, introduzca el ARN del grupo de dispositivos. Para obtener los ARN del grupo de dispositivos disponibles para el proyecto, incluido el ARN de los principales dispositivos, utilice la AWS CLI para introducir el siguiente comando:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    11. En AppType, ingresa iOS.

      La siguiente es una lista de valores válidos para AppType:

      • iOS

      • Android

      • Web

    12. En App (Aplicación), escriba la ruta del paquete de la aplicación compilado. La ruta es relativa a la raíz del artefacto de entrada de la etapa de prueba. Típicamente, esta ruta es similar a ios-test.ipa.

    13. En TestType, introduzca el tipo de prueba y, a continuación, en Prueba, introduzca la ruta del archivo de definición de la prueba. La ruta es relativa a la raíz del artefacto de entrada de la prueba.

      Si utiliza una de las pruebas de Device Farm integradas, escriba el tipo de prueba que ha configurado en el proyecto de Device Farm, por ejemplo BUILTIN_FUZZ. En FuzzEventCount, introduzca un tiempo en milisegundos, como 6000. En FuzzEventThrottle, introduzca un tiempo en milisegundos, como 50.

      Si no utiliza una de las pruebas de Device Farm integradas, escriba el tipo de prueba y, en Prueba, escriba la ruta del archivo de definición de prueba. La ruta es relativa a la raíz del artefacto de entrada de la prueba.

      La siguiente es una lista de valores válidos para TestType:

      • APPIUM_JAVA_JUNIT

      • APPIUM_JAVA_TESTNG

      • APPIUM_NODE

      • APPIUM_RUBY

      • APPIUM_PYTHON

      • APPIUM_WEB_JAVA_JUNIT

      • APPIUM_WEB_JAVA_TESTNG

      • APPIUM_WEB_NODE

      • APPIUM_WEB_RUBY

      • APPIUM_WEB_PYTHON

      • BUILTIN_FUZZ

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      nota

      No se admiten los nodos de entorno personalizados.

    14. En los campos restantes, proporcione la configuración que sea adecuada para su prueba y tipo de aplicación.

    15. (Opcional) En Advanced (Avanzado), proporcione información acerca de la configuración en la ejecución de prueba.

    16. Seleccione Guardar.

    17. En la etapa que está editando, elija Done (Listo). En el AWS CodePipeline panel, seleccione Guardar y, a continuación, seleccione Guardar en el mensaje de advertencia.

    18. Para enviar los cambios y comenzar una ejecución de la canalización, elija Release change (Publicar modificación) y, a continuación, Release (Publicar).