(QA) AWS Device Farm Python을 이용하여 Appium 원격 자동화

2022. 9. 20. 18:04QA

728x90
반응형

 

 

AWS Device Farm 이란?

💡 AWS Device Farm은 테스트 인프라를 프로비저닝하고 관리하지 않아도 다양한 데스크톱 브라우저 및 실제 모바일 디바이스에서 테스트를 진행하여 웹 및 모바일 앱 품질을 향상시키는 애플리케이션 테스트 서비스입니다. 테스트를 통해 여러 데스크톱 브라우저나 실제 디바이스에서 동시에 테스트를 실행함으로써 테스트 도구 실행 속도를 높이고 비디오 및 로그를 생성하여 앱과 관련된 문제를 빠르게 식별할 수 있습니다.

 

 

시작하기

저는 AWS Device Farm 에 기존에 작성을 해두었던 자동화 Code들을 AWS Device Farm에 올려서

원격으로 여러 테스트기기를 병렬로 실제 디바이스에서 동시에 테스트를 실행하기 위한 가이드 입니다.

  • 위에서 언급된 비디오 로그를 확인할 수 있는 것도 장점이기 때문에 활용을하면 좋을 것 같습니다.

 

 

따라하기

install Python virtualenv

pip3 install virtualenv

virtualenv 를 사용하는 이유는 격리된 가상 공간에서 설정을 하면 기존 로컬과 꼬이지 않는 장점이 있습니다.

더보기

💡 virtualenv 란

 격리된 파이썬 환경을 만들기 위한 도구이다. virtualenv는 Python 프로젝트에 필요한 패키지를 사용하는 데 필요한 모든 실행 파일이 포함된 폴더를 생성합니다.

virtualenv 를 설치해줍니다.

virtualenv workspace
cd workspace
source bin/activatet

저는 unittest를 사용해서 개발을 했지만 우선 aws sample에서는 pytest를 사용하나 봅니다.

각자 구현한 방식대로 설치하면 될 것 같습니다.

pip3 install pytest
pip3 Appium-Python-Client

Device Farm은 tests 디렉토리를 찾아서 수행을 하는 방식인 것 같습니다.

find tests/

아래 처럼 폴더를 구성해서 테스트할 package 를 설정해줍니다.

tests/
tests/my-first-tests.py

테스트할 목록을 보여주는 명령어입니다.

py.test --collect-only tests/

 

create a zipped test package file

Python3

zip -r test_bundle.zip tests/ requirements.txt

가장 중요한 upload할 zip 파일을 만들어주는 부분입니다.

AWS Device Farm에 테스트 파일을 업로드할 때 requirements.txt 파일이 포함 된 zip 파일 기준으로

업로드를 요구하는데요. 자동화 코드가 포함되어있는 tests 디렉토리와 requirements.txt 를 zip합니다.

 

 

upload zip file to device farm

만약 아래와 같은 오류가 나타난다면 zip file 내부에 requirements.txt 파일이 없어서 발생한 것 입니다.

아마도 오탈자가 있어서 발생했을 가능성이 큽니다.

Something went wrong, please try again. We could not find the requirements.txt file in the *root* of your test package. Please unzip your test package, verify that the requirements.txt file is in the root of your package, and try again.

 

파일이 업로드 성공되었다면 아래와 같이 보여질 것 입니다.

 

이제 [다음] 버튼을 눌러 Device를 선택하는 화면으로 넘어갑니다.


또 다음으로 넘기면 device state를 설정하는 화면이 나옵니다.

저 같은 경우에는 kr로 설정을해야만 하는 상황이어서 Device locale 을 변경해주었습니다.

 

기타 설정을 모두 완료하면 아래와 같이 proejct가 생성이 됩니다.

자동화가 실행되고 있는 모습입니다.

(제가 테스트로 올린 파일은 마지막 부분에 fail이 발생하는 코드여서 fail이 뜨는 모습입니다.







 

 

 

728x90
반응형