View a markdown version of this page

AWS Device Farm의 계측 테스트 문제 해결 - AWS Device Farm

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Device Farm의 계측 테스트 문제 해결

다음 주제에서는 계측 테스트를 업로드하는 동안 발생하는 오류 메시지를 나열하고 각 오류를 해결하기 위한 해결 방법을 권장합니다.

참고

AWS Device Farm에서 계측 테스트를 사용할 때 고려해야 할 중요한 사항은 Android 및 AWS Device Farm용 계측 섹션을 참조하세요.

업로드 오류

계측 테스트를 업로드할 때 다음과 같은 오류가 발생할 수 있습니다.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED

다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.

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

오류 없이 테스트 패키지의 압축을 풀 수 있는지 확인하세요. 다음 예제에서 패키지 이름은 app-debug-androidTest-unaligned.apk입니다.

  1. 작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.

    $ unzip app-debug-androidTest-unaligned.apk
  2. 패키지 압축을 성공적으로 푼 후에는 다음 명령을 실행하여 작업 디렉터리 트리 구조를 찾을 수 있습니다.

    $ tree .

    올바른 계측 테스트 패키지는 다음과 같은 출력이 생성됩니다.

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

    자세한 내용은 Android 및 AWS Device Farm용 계측 단원을 참조하세요.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.

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.

업로드 검증 프로세스 중에 Device Farm은 aapt debug badging <path to your package> 명령 출력에서 정보를 구문 분석합니다.

계측 테스트 패키지에서 이 명령을 성공적으로 실행할 수 있는지 확인하세요.

다음 예제에서 패키지 이름은 app-debug-androidTest-unaligned.apk입니다.

  • 작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.

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

    올바른 계측 테스트 패키지는 다음과 같은 출력이 생성됩니다.

    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'

    자세한 내용은 Android 및 AWS Device Farm용 계측 단원을 참조하세요.

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING

다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.

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."

업로드 검증 프로세스 중에 Device Farm은 패키지 내에 포함된 XML 파일의 XML 파스 트리에서 계측 러너 값을 파싱합니다. 다음 aapt dump xmltree <path to your package> AndroidManifest.xml 명령을 사용할 수 있습니다.

계측 테스트 패키지에서 이 명령을 실행하여 계측 값을 성공적으로 찾을 수 있는지 확인하세요.

다음 예제에서 패키지 이름은 app-debug-androidTest-unaligned.apk입니다.

  • 작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.

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

    올바른 계측 테스트 패키지는 다음과 같은 출력이 생성됩니다.

    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

    자세한 내용은 Android 및 AWS Device Farm용 계측 단원을 참조하세요.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED

다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.

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.

업로드 검증 프로세스 중에 Device Farm은 다음 명령 aapt dump xmltree <path to your package> AndroidManifest.xml을 사용하여 패키지에 포함된 XML 파일의 XML 분석 트리에서 정보를 구문 분석합니다.

계측 테스트 패키지에서 이 명령을 성공적으로 실행할 수 있는지 확인하세요.

다음 예제에서 패키지 이름은 app-debug-androidTest-unaligned.apk입니다.

  • 작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.

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

    올바른 계측 테스트 패키지는 다음과 같은 출력이 생성됩니다.

    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")

    자세한 내용은 Android 및 AWS Device Farm용 계측 단원을 참조하세요.

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

다음 메시지가 표시되면 다음 단계에 따라 문제를 해결하세요.

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."

업로드 검증 프로세스 중에 Device Farm은 다음 명령 aapt debug badging <path to your package>의 출력에서 패키지 이름 값을 구문 분석합니다.

인스트루먼트 테스트 패키지에서 이 명령을 실행하고 패키지 이름 값을 성공적으로 찾을 수 있는지 확인하세요.

다음 예제에서 패키지 이름은 app-debug-androidTest-unaligned.apk입니다.

  • 작업 디렉터리에 테스트 패키지를 복사한 후 다음 명령을 실행하세요.

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

    올바른 계측 테스트 패키지는 다음과 같은 출력이 생성됩니다.

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

    자세한 내용은 Android 및 AWS Device Farm용 계측 단원을 참조하십시오.

인사이트 테스트

인사이트를 테스트하도록 옵트인하면 Device Farm은 실행 및 그 아래의 각 작업에 대한 요약 보고서를 생성합니다. 서비스가 보고서를 생성할 수 없는 경우 인사이트 보고서 상태는 SKIPPED 또는 이고 보고서 메시지ERRORED에 이유가 설명되어 있습니다. 계측 테스트에 대한 인사이트를 생성할 때 다음 메시지가 발생할 수 있습니다.

작업이 완료될 때까지 실행되지 않았습니다.

Unable to generate test insights because the job was status.

작업이 성공하지 못한 상태(상태STOPPED, ERRORED또는 SKIPPED)로 종료되었으므로 요약할 결과가 없었습니다. 실패한 상태로 끝나는 실행은 여전히 인사이트를 수신합니다.

이 문제를 해결하려면 작업이 완료될 때까지 실행되지 않은 이유를 조사합니다. 대부분의 경우 작업 자체의 message 필드는 작업이 완료되지 않은 이유를 설명할 수 있습니다.

결과에 테스트 사례가 포함되어 있지 않음

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

결과 아티팩트가 성공적으로 구문 분석되었지만 테스트 사례가 0개 포함되어 있습니다.

이 문제를 해결하려면 테스트 제품군에 하나 이상의 테스트 사례가 포함되어 있고 결과가 아래에 올바르게 저장되어 있는지 확인합니다$DEVICEFARM_LOG_DIR.

테스트 출력이 지원되는 최대 크기를 초과합니다.

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

테스트 사양 출력이 1GB보다 큽니다.

이 문제를 해결하려면 테스트 사양 출력에서 많은 수의 줄을 생성하는 명령을 조사합니다. 그런 다음 제거하거나 수정합니다.

테스트 사양 출력에서 계측 출력을 찾을 수 없음

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

테스트 사양 출력 파일이 있지만 계측 출력 줄이 포함되어 있지 않습니다.

이 문제를 해결하려면 프레임워크가 테스트 사양 파일의 stdout에 계측 출력을 내보내야 합니다.