기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 지정 테스트 환경 실행 모범 사례
다음 주제에서는 Device Farm에서 사용자 지정 테스트 실행을 사용하기 위한 권장 모범 사례를 다룹니다.
실행 구성
-
테스트 사양 파일의 셸 명령을 통해 유사한 구성을 적용하는 대신 가능한 경우 Device Farm 관리형 소프트웨어 및 API 기능을 사용하여 구성을 실행합니다. 여기에는 테스트 호스트 및 디바이스의 구성이 포함됩니다. 테스트 호스트 및 디바이스에서 더 지속 가능하고 일관되기 때문입니다.
Device Farm은 테스트를 실행하는 데 필요한 만큼 테스트 사양 파일을 사용자 지정하는 것을 권장하지만, 사용자 지정 명령이 추가되면 시간이 지남에 따라 테스트 사양 파일을 유지하기 어려울 수 있습니다. Device Farm 관리형 소프트웨어 사용(와 같은 도구
devicefarm-cli및에서 사용 가능한 기본 도구를 통해$PATH) 및 관리형 기능(예:deviceProxy요청 파라미터)을 사용하여 유지 관리 책임을 Device Farm 자체로 전환하여 테스트 사양 파일을 간소화합니다.
테스트 사양 및 테스트 패키지 코드
-
절대 경로를 사용하거나 테스트 사양 파일 또는 테스트 패키지 코드의 특정 마이너 버전에 의존하지 마십시오. Device Farm은 선택한 테스트 호스트와 포함된 소프트웨어 버전에 정기 업데이트를 적용합니다. 특정 또는 절대 경로(예:
/usr/local/bin/python대신python)를 사용하거나 특정 마이너 버전(예: Node.js20.3.1대신)을 요구하면 테스트에서 필요한 실행 파일/파일을 찾지 못할20수 있습니다.사용자 지정 테스트 실행의 일환으로 Device Farm은 다양한 환경 변수와
$PATH변수를 설정하여 테스트가 동적 환경 내에서 일관된 경험을 갖도록 합니다. 자세한 내용은 사용자 지정 테스트 환경을 위한 환경 변수 및 사용자 지정 테스트 환경 내에서 지원되는 소프트웨어 섹션을 참조하세요. -
테스트 실행 중에 생성되거나 복사된 파일을 임시 디렉터리 내에 저장합니다. 오늘은 테스트 실행 중에 사용자가 임시 디렉터리(
/tmp)에 액세스할 수 있도록 합니다(와 같은 관리형 디렉터리 제외$DEVICEFARM_LOG_DIR). 사용자가 액세스할 수 있는 다른 디렉터리는 사용 중인 서비스 또는 운영 체제의 요구로 인해 시간이 지남에 따라 변경될 수 있습니다. -
테스트 실행 로그를에 저장합니다
$DEVICEFARM_LOG_DIR. 실행 로그/아티팩트를 추가하기 위해 실행에 제공되는 기본 아티팩트 디렉터리입니다. 제공하는 예제 테스트 사양은 기본적으로 아티팩트에이 디렉터리를 사용합니다. -
테스트 사양
test단계에서 명령이 실패 시 0이 아닌 코드를 반환하는지 확인합니다.test단계 중에 호출된 각 셸 명령의 0이 아닌 종료 코드를 확인하여 실행이 실패했는지 확인합니다. 로직 또는 테스트 프레임워크가 원하는 모든 시나리오에 대해 0이 아닌 종료 코드를 반환하는지 확인해야 합니다. 그러면 추가 구성이 필요할 수 있습니다.예를 들어 특정 테스트 프레임워크(예: JUnit5)는 제로 테스트 실행을 실패로 간주하지 않으므로 실행된 테스트가 없더라도 테스트가 성공적으로 실행된 것으로 감지됩니다. JUnit5를 예제로 사용하면이 시나리오가 0이 아닌 종료 코드로 종료
--fail-if-no-tests되도록 명령줄 옵션을 지정해야 합니다. -
테스트 실행에 사용할 디바이스 OS 버전 및 테스트 호스트 버전과 소프트웨어의 호환성을 검토합니다. 예를 들어 소프트웨어 프레임워크(예: Appium)를 테스트할 때 테스트 중인 디바이스의 모든 OS 버전에서 의도한 대로 작동하지 않을 수 있는 특정 기능이 있습니다.
보안
-
테스트 사양 파일에 민감한 변수(예: AWS 키)를 저장하거나 로깅하지 마세요. 테스트 사양 파일, 테스트 사양 생성 스크립트 및 테스트 사양 스크립트의 로그는 모두 테스트 실행이 끝날 때 다운로드 가능한 아티팩트로 제공됩니다. 이로 인해 테스트 실행에 대한 읽기 액세스 권한이 있는 계정의 다른 사용자에게 의도하지 않은 보안 암호가 노출될 수 있습니다.