Adición de archivos adicionales a su paquete de pruebas en Device Farm
Es posible que desee utilizar archivos adicionales como parte de sus pruebas, ya sea como archivos de configuración adicionales o como datos de prueba adicionales. Puede añadir estos archivos adicionales a su paquete de prueba antes de cargarlo en AWS Device Farm y, a continuación, acceder a ellos desde el modo de entorno personalizado. Básicamente, todos los formatos de carga de paquetes de prueba (ZIP, IPA, APK, JAR, etc.) son formatos de archivo de paquetes que admiten las operaciones ZIP estándar.
Puede añadir archivos a su archivo de prueba antes de cargarlos en AWS Device Farm mediante el siguiente comando:
$ zip zip-with-dependencies.zip extra_file
Para un directorio de archivos adicionales:
$ zip -r zip-with-dependencies.zip extra_files/
Estos comandos funcionan según lo previsto en todos los formatos de carga de paquetes de prueba, excepto en los archivos IPA. Para los archivos IPA, especialmente cuando se utilizan con XCUITests, le recomendamos que coloque los archivos adicionales en una ubicación ligeramente diferente debido a la forma en que AWS Device Farm diseña los paquetes de prueba de iOS. Al compilar la prueba de iOS, el directorio de la aplicación de prueba se ubicará dentro de otro directorio llamado Payload.
Por ejemplo, este es el aspecto que puede tener uno de esos directorios de prueba de iOS:
$ tree . └── Payload └── ADFiOSReferenceAppUITests-Runner.app ├── ADFiOSReferenceAppUITests-Runner ├── Frameworks │ ├── XCTAutomationSupport.framework │ │ ├── Info.plist │ │ ├── XCTAutomationSupport │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ └── version.plist │ └── XCTest.framework │ ├── Info.plist │ ├── XCTest │ ├── _CodeSignature │ │ └── CodeResources │ ├── en.lproj │ │ └── InfoPlist.strings │ └── version.plist ├── Info.plist ├── PkgInfo ├── PlugIns │ ├── ADFiOSReferenceAppUITests.xctest │ │ ├── ADFiOSReferenceAppUITests │ │ ├── Info.plist │ │ └── _CodeSignature │ │ └── CodeResources │ └── ADFiOSReferenceAppUITests.xctest.dSYM │ └── Contents │ ├── Info.plist │ └── Resources │ └── DWARF │ └── ADFiOSReferenceAppUITests ├── _CodeSignature │ └── CodeResources └── embedded.mobileprovision
Para estos paquetes de XCUITest, añada cualquier archivo adicional al directorio que termine en .app dentro del directorio Payload. Por ejemplo, los siguientes comandos muestran cómo se puede añadir un archivo a este paquete de prueba:
$ mv extra_file Payload/*.app/ $ zip -r my_xcui_tests.ipa Payload/
Al añadir un archivo a su paquete de prueba, puede esperar un comportamiento de interacción ligeramente diferente en AWS Device Farm en función del formato de carga. Si la carga utilizó la extensión de archivo ZIP, AWS Device Farm lo descomprimirá automáticamente antes de la prueba y dejará los archivos descomprimidos en la ubicación con la variable de entorno $DEVICEFARM_TEST_PACKAGE_PATH. (Esto significa que si añade un archivo llamado extra_file a la raíz del archivo, como en el primer ejemplo, se ubicará en $DEVICEFARM_TEST_PACKAGE_PATH/extra_file durante la prueba).
Para usar un ejemplo más práctico, si es un usuario de Appium TestNG que quiere incluir un archivo testng.xml con su prueba, puede incluirlo en su archivo usando el siguiente comando:
$ zip zip-with-dependencies.zip testng.xml
Luego, puede cambiar su comando de prueba en el modo de entorno personalizado por el siguiente:
java -D appium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output $DEVICEFARM_TEST_PACKAGE_PATH/testng.xml
Si la extensión de carga del paquete de prueba no es ZIP (por ejemplo, un archivo APK, IPA o JAR), el archivo del paquete cargado propiamente dicho se encuentra en $DEVICEFARM_TEST_PACKAGE_PATH. Como siguen siendo archivos en formato de archivo, puede descomprimirlos para acceder a los archivos adicionales desde dentro. Por ejemplo, el siguiente comando descomprimirá el contenido del paquete de prueba (para archivos APK, IPA o JAR) en el directorio /tmp:
unzip $DEVICEFARM_TEST_PACKAGE_PATH -d /tmp
En el caso de un archivo APK o JAR, encontrará los archivos adicionales descomprimidos en el directorio /tmp (por ejemplo, /tmp/extra_file). En el caso de un archivo IPA, como se ha explicado anteriormente, los archivos adicionales estarían en una ubicación ligeramente diferente dentro de la carpeta que termina en .app, que se encuentra dentro del directorio Payload. Por ejemplo, según el ejemplo anterior de IPA, el archivo se encontraría en la ubicación /tmp/Payload/ADFiOSReferenceAppUITests-Runner.app/extra_file (referenciable como /TMP/payload/ *.app/extra_file).
Para ver otras maneras de ampliar el conjunto de pruebas y optimizar las pruebas, consulte Ampliación de los entornos de prueba personalizados en Device Farm.