testng.xml 파일을 AWS Device Farm용 Appium TestNG 테스트 패키지에 적용하려면 testng.xml 파일을 *-tests.jar 파일의 루트에 추가해야 합니다. 어떻게 하면 됩니까?

testng.xml 파일 사용을 보여주려면 aws-samples GitHub 페이지에서 Device Farm Appium 테스트 프로젝트를 사용하여, testng.xml 파일을 만든 다음, Maven을 사용하여 테스트를 패키징하면 됩니다. 그러면 aws-samples GitHub 페이지에서 Android 프로젝트용 Device Farm 샘플 앱을 사용하여 테스트 장치에서 사용할 샘플 Android 애플리케이션을 빌드할 수 있습니다.

참고: Device Farm의 표준 환경에서는 testng.xml 파일에 기능 하위 집합만 지원됩니다. 우선순위, 포함 태그, 제외 태그, 복잡한 그룹화 또는 testng.xml 파일의 파라미터가 프로젝트에 필요할 경우에는 사용자 지정 환경을 사용하십시오.

1.    aws-device-farm-appium-tests-for-sample-app Java 테스트 샘플 프로젝트를 다운로드하거나 복제하고, 필요할 경우 프로젝트를 추출한 다음, 활성 디렉터리를 해당 프로젝트로 변경하십시오.

cd aws-device-farm-appium-tests-for-sample-app/

2.    /src/test/resources 디렉터리를 생성합니다.

mkdir src/test/resources

Super POM은 리소스 디렉터리에 있는 모든 파일을 *- tests.jar 파일로 추가하도록 구성되어 있습니다.

프로젝트의 Super POM을 보려면 다음 명령을 실행합니다.

mvn help:effective-pom

또는 pom.xml에서 testResources 태그를 구현하여 src/test/resources 이외의 다른 디렉터리를 명시적으로 참조할 수도 있습니다.

<testResources>
     <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
     </testResource>
</testResources>

3.    testng.xml 파일을 src/test/resources 디렉터리에 생성한 후 AlertPageTest 클래스를 파일에 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
    <test name="test">
        <classes>
            <class name="Tests.AlertPageTest"/> <!--Package.ClassName-->
        </classes>
    </test>
</suite>

4.    surefire 플러그인을 추가하도록 pom.xml을 수정하여 로컬 실행 시 testng.xml 파일을 참조하게 합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12.4</version> 
    <configuration>
       <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles>
    </configuration>
</plugin>

이 기능은 프로젝트가 Device Farm에서만 실행될 경우에 선택할 수 있는 옵션입니다. 그러나 로컬에서 테스트를 실행한 후에 Device Farm으로 업로드하는 것이 가장 좋습니다.

5.    대상 디렉터리의 내용을 삭제한 후 clean을 사용하여 테스트를 패키징하고 Maven 명령을 패키징합니다. -DskipTests=true 옵션은 빌드에서 단위 테스트를 실행하지 않도록 지정합니다.

mvn clean package -DskipTests=true

이 패키지 명령은 *-tests.jar 파일이 있는 대상 디렉터리에 zip-with-dependencies.zip 파일을 생성합니다.

6.    xf 명령을 사용하여 jar를 추출하고 testng.xml 파일이 루트에 있는지 확인합니다.

jar xf nameOfTheProjectFromPom-1.0-SNAPSHOT-tests.jar

또는 unzip 명령을 사용하여 jar 내용을 추출할 수도 있습니다.

unzip nameOfTheProjectFromPom-1.0-SNAPSHOT-tests.jar -d sampletestsjarcontents

7.    샘플 android 애플리케이션 aws-device-farm-sample-app-for-android를 GitHub의 aws-samples에서 복제한 다음 Device Farm에서 테스트용으로 사용합니다.

https://github.com/awslabs/aws-device-farm-sample-app-for-android

이 프로젝트를 복제하거나 그 zip 버전을 다운로드한 다음 /aws-device-farm-sample-app-for-android 디렉터리로 변경합니다.

git clone https://github.com/awslabs/aws-device-farm-sample-app-for-android.git
cd aws-device-farm-sample-app-for-android/

8.    아직 없는 경우 ANDROID_HOME 변수를 경로에 추가한 다음 프로젝트를 빌드합니다.

Windows의 경우:

경로 환경 변수에서 ANDROID_HOME 변수를 설정합니다.

gradle 명령을 assembleDebug 파라미터로 실행하여 프로젝트를 빌드합니다.

gradlew.bat assembleDebug

macOS 또는 Unix의 경우:

다음 라인을 /.bash_profile 파일에 추가합니다.

export ANDROID_HOME=/Users/$(whoami)/Library/Android/sdk

소스 명령을 사용하여 프로파일을 다시 로드합니다.

source ~/.bash_profile

gradle 명령을 assembleDebug 파라미터로 실행하여 프로젝트를 빌드합니다.

./gradlew assembleDebug

그러면 Device Farm에서 시험용으로 사용할 app-debug.apk 파일이 ./app/build/outputs/apk 디렉터리에 생성됩니다.

9.    Device Farm에서 테스트 일정을 잡은 다음 Class AlertPageTest.java에서만 테스트가 실행되었는지 확인합니다.

모든 도구 모음(설정 도구 모음, Tests.AlertPageTest, 해제 도구 모음)에 성공한 것으로 표시되어야 합니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-09-26