본문 바로가기
Automation

QA도 해보자! 디바이스 팜 도입기!! STF 셋팅하기

by Zeromk2 2022. 9. 4.
728x90

재택을 많이 하게 되는데 가끔씩 사무실 출근을 할 때면 테스트폰을 바리바리 싸가지고 다니는 것이 점점 불편해지기 시작했습니다.

그래서 AWS 디바이스팜을 결제해야 하나?...

아니 아니 이건 불편한것 치고 너무 비용이 비싼것 아닌가? 하는 찰나

STF라는 것이 눈에 띄었습니다.

내 브라우져에서 편안하게?...

 

AWS의 디바이스팜을 내가 직접 구성할 수 있도록 할 수 있는 거였습니다.

 

당장 가보자고!

 

회사에서 쓰는 맥미니에 바로 설치를 시작했습니다.

사용법은 아래의 github 페이지를 참고해주세요 매우 잘 설명이 되어있습니다.

 

GitHub - DeviceFarmer/stf: Control and manage Android devices from your browser.

Control and manage Android devices from your browser. - GitHub - DeviceFarmer/stf: Control and manage Android devices from your browser.

github.com

 

LINE Engineering 페이지에서도 많은 도움을 받았습니다. 

 

코로나 시대 원격 QA! 오픈소스 디바이스팜 STF 도입기

2022-LINE-engineering-site

engineering.linecorp.com

 

저도 간단히 설명하자면

일단 고정 IP여야 하며 포트를 열어주셔야 합니다. 

  • 고정 IP 주소 필요
  • 앱 장비와의 인바운드 포트로 7400~7700 범위의 포트가 열려 있어야 함
  • 앱 장비와의 아웃바운드 포트로 7250 포트와 7270 포트가 열려 있어야 함

 

0. 레퍼지토리를 클론해서 다운받아 주세요! (저는 Docker로 안했습니다)

 

1. 종속성 패키지나 모듈을 모두 설치해주세요

brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config cmake

 

2. NPM으로 STF를 설치합니다.

npm install -g @devicefarmer/stf

 

3. rethinkdb를 원하는 포트로 띄워주시고

rethinkdb --bind all --http-port {포트번호}

 

4. STF를 실행해주시면 됩니다.

stf local

 

저는 2번에서 트러블 슈팅을 조금 했는데요

...아니 조금은 아니구요 많이 했습니다. 그래서 어떤 문제를 만났을 때 어떻게 해결해야 하는지 정리를 못해놨습니다 ㅜㅜ

 

그리고 STF를 실행하면  http://localhost:7100 에 STF페이지가 출력 될 것입니다.

땃!

 

임의의 Name과 E-mail을 입력하시면 로그인이 가능합니다.

그러면 이렇게 연결한 단말기들이 표시되고 Use 링크를 통해 해당 기기를 웹브라우져에서 사용할 수 있게 됩니다.

저는 외부에서 호환성 테스트를 할 목적 + 안드로이드 개발자 분들이 편하게 사용하실 수 있도록 환경을 제공할 목적으로 7대 정도를 연결해놨습니다. (한대는 대여중이라 없습니다)

 

이제 한달 정도 사용한 것 같은데 정말 매우 편합니다. 

원격으로 adb connect 해서 appium 자동화 스크립트를 돌릴 수도 있습니다!

 

안드로이드 개발자 분들도 조금씩 사용해주시더라구요. 다만 iOS가 아직이라 이건 좀 아쉽습니다 ㅜㅜ

여러분들도 한번 도전해보세요~ 어렵지 않습니다 시간이 조금 걸릴뿐이죠. 

우리는 모두 해낼거잖아요 그쵸?

 

 

댓글