View a markdown version of this page

Solução de problemas de testes de instrumentação no AWS Device Farm - AWS Device Farm

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas de testes de instrumentação no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de instrumentação e recomenda soluções para resolver cada erro.

nota

Para analisar considerações importantes sobre testes de instrumentação no AWS Device Farm, consulte Instrumentação para Android e AWS Device Farm.

Erros de upload

Os seguintes erros podem ocorrer quando você carrega seus testes de instrumentação.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning: We could not open your test APK file. Please verify that the file is valid and try again.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome do pacote é Test-unaligned.apk app-debug-android.

  1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ unzip app-debug-androidTest-unaligned.apk
  2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretório de trabalho executando o seguinte comando:

    $ tree .

    Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

    . |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- LICENSE-junit.txt |-- junit (directory) `-- META-INF (directory)

    Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

We could not extract information about your test package. Please verify that the test package is valid by running the command "aapt debug badging <path to your test package>", and try again after the command does not print any error.

Durante o processo de validação do upload, o Device Farm analisa as informações da saída do comando aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentação.

No exemplo a seguir, o nome do pacote é Test-unaligned.apk app-debug-android.

  • Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ aapt debug badging app-debug-androidTest-unaligned.apk

    Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

    package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727' sdkVersion:'9' targetSdkVersion:'22' application-label:'Test-api' application: label='Test-api' icon='' application-debuggable uses-library:'android.test.runner' feature-group: label='' uses-feature: name='android.hardware.touchscreen' uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps' supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' densities: '160'

    Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

We could not find the instrumentation runner value in the AndroidManifest.xml. Please verify the test package is valid by running the command "aapt dump xmltree <path to your test package> AndroidManifest.xml", and try again after finding the instrumentation runner value behind the keyword "instrumentation."

Durante o processo de validação de upload, o Device Farm analisa o valor do executor de instrumentação da árvore de análise XML para um arquivo XML contido no pacote. Você pode usar os seguintes comandos: aapt dump xmltree <path to your package> AndroidManifest.xml.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentação e encontrar o valor de instrumentação.

No exemplo a seguir, o nome do pacote é Test-unaligned.apk app-debug-android.

  • Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"

    Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

    E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0

    Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

We could not find the valid AndroidManifest.xml in your test package. Please verify that the test package is valid by running the command "aapt dump xmltree <path to your test package> AndroidManifest.xml", and try again after the command does not print any error.

Durante o processo de validação de upload, o Device Farm analisa as informações da árvore de análise XML de um arquivo XML contido no pacote usando o seguinte comando: aapt dump xmltree <path to your package> AndroidManifest.xml.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentação.

No exemplo a seguir, o nome do pacote é Test-unaligned.apk app-debug-android.

  • Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml

    Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

    N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: package="com.amazon.aws.adf.android.referenceapp.test" (Raw: "com.amazon.aws.adf.android.referenceapp.test") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=5) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0 E: application (line=16) A: android:label(0x01010001)=@0x7f020000 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff E: uses-library (line=17) A: android:name(0x01010003)="android.test.runner" (Raw: "android.test.runner")

    Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

Se você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

We could not find the package name in your test package. Please verify that the test package is valid by running the command "aapt debug badging <path to your test package>", and try again after finding the package name value behind the keyword "package: name."

Durante o processo de validação do upload, o Device Farm analisa o valor do nome do pacote pela saída do seguinte comando: aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentação e encontrar o valor do nome do pacote.

No exemplo a seguir, o nome do pacote é Test-unaligned.apk app-debug-android.

  • Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

    $ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="

    Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

    package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'

    Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

Insights de teste

Quando você opta por testar os insights, o Device Farm gera um relatório resumido para sua execução e cada tarefa relacionada a ela. Se o serviço não conseguir gerar o relatório, o status do relatório de insights é SKIPPED ouERRORED, e a mensagem do relatório explica o porquê. As mensagens a seguir podem ocorrer ao gerar insights para testes de instrumentação.

O trabalho não foi executado até a conclusão

Unable to generate test insights because the job was status.

O trabalho terminou em um estado malsucedido (onde status está STOPPEDERRORED, ouSKIPPED), então não havia nenhum resultado para resumir. Uma execução que termina em um estado de falha ainda recebe insights.

Para resolver esse problema, investigue por que o trabalho não foi executado até a conclusão. Em muitos casos, o message campo do trabalho em si pode explicar por que o trabalho não foi concluído.

Os resultados não continham casos de teste

Test insights could not be generated. The test spec output file was parsed successfully but contained no test cases.

O artefato de resultados foi analisado com sucesso, mas não continha nenhum caso de teste.

Para resolver esse problema, verifique se sua suíte de testes inclui pelo menos um caso de teste e se os resultados estão armazenados corretamente em$DEVICEFARM_LOG_DIR.

A saída do teste excede o tamanho máximo suportado

Unable to generate test insights: test output "test spec output" exceeds the maximum supported size of 1GB.

A saída da especificação de teste é maior que 1 GB.

Para resolver esse problema, investigue os comandos que estão gerando um grande número de linhas na saída da especificação de teste. Em seguida, remova-os ou modifique-os.

Nenhuma saída de instrumentação foi encontrada na saída da especificação de teste

Unable to generate test insights. No instrumentation test output was found in the test spec output file.

O arquivo de saída da especificação de teste estava presente, mas não continha linhas de saída de instrumentação.

Para resolver esse problema, certifique-se de que sua estrutura emita a saída de instrumentação para o arquivo de stdout especificações de teste.