나만의 Smartphone Test Farm 만들기 (STF)
이 글에서는 스마트폰과 스마트워치 등의 장치를 원격으로 디버깅할 수 있는 STF(Smartphone Test Farm)에 대해 소개합니다. STF를 이용하면 다양한 디바이스를 서버에 연결하여, 개발한 애플리케이션을 여러 디바이스 환경에서 쉽게 테스트할 수 있습니다. 1인 개발자로서, 브라우저를 통해 원격으로 핸드폰을 조작할 수 있다는게 가장 큰 장점인 것 같습니다.
공식 git 주소는 다음과 같습니다.
https://github.com/DeviceFarmer/stf
환경
- Ubuntu 22.04
- adb 연결된 android device
1 2 3
$ adb devices List of devices attached 192.168.0.40:5555 device
주요 기능
운영 체제 지원
- 안드로이드: 2.3.3 (SDK 10)부터 12 (SDK 32)까지 지원
- Wear OS: 5.1 지원 (5.0은 권한 문제로 지원하지 않음)
- 기타: Fire OS, CyanogenMod 등 안드로이드 기반 배포판 지원
장치 제어
- 브라우저에서 장치 원격 제어
- 실시간 화면 보기 (최대 30-40 FPS)
- 회전 지원
- 키보드 입력 및 메타 키 지원
- 드래그 앤 드롭을 통한 apk 파일 설치 및 실행
- 장치 로그 실시간 보기 및 필터링
장치 관리
- 연결된 장치 상태 모니터링 (사용 중, 오프라인, 인증되지 않음 등)
- 장치 하드웨어 사양 표시
- 배터리 상태 모니터링
설치 방법
1. 필수 의존성 설치
- Node.js (최대 20.x)
- ADB
- RethinkDB (>= 2.2)
- CMake (>= 3.9)
- GraphicsMagick
- ZeroMQ 라이브러리
- Protocol Buffers 라이브러리
- yasm
- pkg-config
1
2
3
4
5
6
7
8
9
10
# Add the RethinkDB repository
wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/rethinkdb-archive-keyrings.gpg
echo "deb [signed-by=/usr/share/keyrings/rethinkdb-archive-keyrings.gpg] https://download.rethinkdb.com/repository/ubuntu-$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
sudo apt-get update
# Install all requirements
sudo apt-get install -y nodejs adb rethinkdb cmake graphicsmagick libzmq3-dev libprotobuf-dev yasm pkg-config npm
만약 apt update
중에 RethinkDB repository 때문에 error가 난다면 직접 빌드해서 사용할수도 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
# Remove RethinkDB repository
sudo rm /usr/share/keyrings/rethinkdb-archive-keyrings.gpg
sudo rm /etc/apt/sources.list.d/rethinkdb.list
# Get the Source code
wget https://download.rethinkdb.com/repository/raw/dist/rethinkdb-2.4.4.tgz
tar xf rethinkdb-2.4.4.tgz
# Build RethinkDB
sudo apt install -y clang python m4
cd rethinkdb-2.4.4
PYTHON=/bin/python3 ./configure --allow-fetch CXX=clang++
sudo make install
2. STF 설치
1
sudo npm install -g @devicefarmer/stf
3. RethinkDB 실행
1
rethinkdb
4. STF 실행:
1
stf local
그 후 브라우저로 http://localhost:7100
접속하면 됩니다.
STF 로그인 페이지
초기 관리자 계정은 다음과 같습니다.
Name: administrator
E-mail: administrator@fakedomain.com
만약 localhost가 아닌 외부에서 접근하고 싶다면 다음과 같이 실행하면 됩니다.
1
2
3
stf local --public-ip <your_internal_network_ip_here>
# ex) stf local --public-ip 192.168.0.55
# 브라우저로 http://192.168.0.55:7100 접속
또한 usb가 아닌 wifi로 연결되어 있는 디바이스(ex. adb connect 192.168.0.40:5555
)도 지원하려면 --allow-remote
를 추가해야 합니다.
1
stf local --allow-remote
STF 메인 화면
만약 접속이 안되거나 control 페이지에 디바이스 화면이 보이지 않는다면, 방화벽을 끄고 시도해보세요.
This post is licensed under CC BY 4.0 by the author.