본문 바로가기
프로그래밍/안드로이드

7. ADB 명령어 스크립팅 및 자동화

by 완소루피 2024. 11. 12.
728x90
반응형

안드로이드 디버그 브리지(ADB)는 기본적으로 터미널에서 단일 명령어를 통해 안드로이드 기기를 제어할 수 있게 해 주지만, 반복 작업을 수동으로 수행하는 것은 비효율적일 수 있습니다. 이를 해결하기 위해 ADB 명령어를 배치 파일 또는 셸 스크립트와 결합하여 자동화할 수 있습니다. 이를 통해 테스팅, 개발, 유지 관리 작업을 자동화할 수 있으며, ADB의 활용도를 크게 높일 수 있습니다.

 

1. ADB와 스크립트 연동 (배치 파일, 셸 스크립트)

배치 파일과 셸 스크립트를 사용하여 ADB 명령어를 자동화하는 방법은 운영체제에 따라 다를 수 있습니다. Windows에서는 .bat 파일로, Linux 및 macOS에서는 셸 스크립트 파일로 작성할 수 있습니다. 간단한 예제를 통해 기기의 상태를 확인하고, 로그를 추출하는 스크립트를 작성해보겠습니다.

Windows Batch File 예제

아래는 Windows 배치 파일을 통해 ADB 기기 목록을 확인하고, 로그캣을 저장하는 예제입니다.

@echo off
adb devices
adb logcat -d > device_log.txt
echo "Logs have been saved to device_log.txt"
pause

 

Linux/Mac 셸 스크립트 예제

Linux나 Mac에서는 .sh 파일을 사용하여 ADB와 연동할 수 있습니다.

#!/bin/bash
adb devices
adb logcat -d > device_log.txt
echo "Logs have been saved to device_log.txt"

 

위의 스크립트는 adb devices로 연결된 기기를 확인한 후, adb logcat을 통해 로그를 수집하고 이를 device_log.txt 파일에 저장합니다.

2. 반복 작업의 자동화와 예제 스크립트 작성

반복적인 작업을 스크립트로 자동화하면, 간단한 명령어 실행만으로 작업을 끝낼 수 있습니다. 예를 들어 여러 앱의 설치 및 업데이트 작업을 자동화하는 스크립트를 작성해 보겠습니다.

앱 설치 자동화 스크립트

앱 설치나 업데이트가 필요한 경우 반복적으로 adb install 명령어를 사용하여 APK 파일을 설치할 수 있습니다.

#!/bin/bash
# Install multiple APK files in a directory

APK_DIR="/path/to/apk/files"
for apk in $APK_DIR/*.apk; do
    echo "Installing $apk..."
    adb install -r "$apk" # -r 옵션은 기존 설치를 덮어쓰도록 합니다.
done
echo "All APK files have been installed."

 

위 스크립트는 지정한 폴더 내의 모든 APK 파일을 하나씩 설치합니다. -r 옵션을 통해 이미 설치된 경우 덮어쓸 수 있습니다.

3. 테스트 자동화에서의 ADB 활용

앱 테스트 시 동일한 절차를 여러 번 반복해야 하는 경우, ADB 스크립트를 통해 테스트를 자동화할 수 있습니다. 아래는 앱을 실행하고 특정 화면에 도달하는 기본적인 테스트 시나리오입니다.

테스트 시나리오 자동화 예제

  1. 앱 설치 후, 실행하기
  2. 특정 화면으로 이동
  3. 테스트 완료 후 앱 종료하기
#!/bin/bash
APK_PATH="/path/to/your/app.apk"
PACKAGE_NAME="com.example.app"
ACTIVITY_NAME="com.example.app.MainActivity"

# Step 1: Install the APK
adb install -r "$APK_PATH"

# Step 2: Start the app
adb shell am start -n "$PACKAGE_NAME/$ACTIVITY_NAME"
echo "App has been launched."

# Step 3: Perform actions (예: 잠시 대기 후 스크린샷)
sleep 5
adb exec-out screencap -p > screenshot.png
echo "Screenshot has been captured."

# Step 4: Close the app
adb shell am force-stop "$PACKAGE_NAME"
echo "App has been closed."

 

이 스크립트는 앱을 설치한 뒤 실행하고, 화면의 스크린샷을 캡처한 후 앱을 종료합니다. 각 명령어가 단계별로 실행되므로 테스트 자동화에 매우 유용합니다.

요약 및 다음 단계

ADB 명령어를 배치 파일이나 셸 스크립트에 통합함으로써 반복 작업을 효율적으로 자동화할 수 있습니다. 위의 예제들을 통해 스크립트를 작성하는 기초를 익힌 후, 본인의 요구에 맞게 커스터마이징하면 다양한 시나리오에서 활용할 수 있습니다.

다음 단계로는 보다 복잡한 시나리오 예를 통해 ADB와 스크립트를 활용하여 테스트 환경을 구축해 보고, 지속적 통합(CI) 파이프라인과 연동하여 더 큰 규모의 테스트 자동화 시스템을 만드는 것이 좋습니다.

728x90
반응형