0. 이슈 리포트 간소화를 하게 된 이유

모바일 기기에서 캡처 / 녹화 파일을 컴퓨터로 옮겨서 업로드하는 과정을 사수에게 묻자, 아래와 같은 방법을 소개받았다.

  1. 모바일 녹화, 캡처 기능 사용해 캡처
  2. 모바일 메신저를 이용해 업로드
  3. PC 메신저로 다운로드

업무 중 모바일 기기를 다뤄야 하는 건 굉장히 불편하고, 번거롭다.

따라서, 모바일 기기를 최대한 안 다루기 위해 툴을 만들었다.

그리고, 무엇보다 CMD 창에서 주르륵 업무가 되는 게 있어 보인다! (중요)

 

우선 직접 만들어 본 툴들을 순서대로 소개하고, 최종적으로 만든 배치 툴을 소개하려고 한다.

아래는 만들어서 쓴 기능들이다.

 

  1. 모바일 스크린샷 캡처 (ADB)
  2. 모바일 영상 녹화 (ADB)
  3. ADB Wi-Fi로 연결 (ADB) 
  4. 영상 압축 (FFMPEG)
  5. 영상 자르기 (FFMPEG)

또 유용한 기능이 있으면 얼마든지 추가할 계획이다.

우선 이번 포스트에서는 캡처, 녹화를 배치스크립트로 만들어 보려 한다.


1. ADB란?

ADB(Android Debug Bridge)는 안드로이드 디바이스와 PC를 연결하여 다양한 작업을 수행할 수 있도록 돕는 CLI 툴.

QA 엔지니어의 입장에서, 앱 설치 및 삭제, 로그 분석, 화면 캡처 등 테스트의 전반적인 도움을 얻을 수 있다!

특히, 여러가지 세팅 또는 테스트 과정에서 물리적인 조작을 명령어 입력으로 해결할 수 있고, 심지어 배치 스크립트를 활용해 행동을 자동화할 수 있다.

그리고, ADB는 오픈소스다!

ADB는 오픈소스 프로젝트

이번 글에서는 ADB와 배치 스크립트를 활용해 캡처/녹화하고, 이를 컴퓨터로 가지고 오는 과정을 자동화하는 간단한! 글이다.


 

2. ADB 설치

구글에 adb 설치를 검색하면 수 많은 글이 있으니, 보고 따라 하면 누구나 다운로드할 수 있다.

크게 해야 할 행동은 아래와 같다.

  1. ADB 설치해서 압축 해제
  2. 압축 해제 된 위치를 "시스템 환경 변수 편집"에 추가
  3. 휴대폰을 adb 사용 가능하게 설정 (USB 디버깅)

위 행동을 하고 나면, 명령 프롬프트(cmd) 창에서 adb devices를 입력해 보자.

실행 화면

위와 같이 실행되면 성공!

만약 연결된 디바이스가 있다면, 아래 이미지처럼 나온다.

R3CRA0JW89R => 내 단말기의 시리얼 넘버

device => 상태


3. 캡처

이제 다음과 같은 명령어를 입력해 볼 수 있다.

adb shell screencap -p /sdcard/screenshot.png

말 그대로, 스크린샷을 찍어보겠다는 의미.

스크린샷을 찍어서, /sdcard/screenshot.png  경로에 스크린샷이 저장된다.

adb pull /sdcard/screenshot.png

스크린샷을 찍으면, adb pull 명령어를 입력해 휴대폰에 저장된 스크린샷을 컴퓨터로 옮길 수 있다.

아래 이미지처럼, adb_cap/screenshot.png 와 같이 경로를 지정해도 된다. 대신 adb_cap 폴더가 있어야 함.

이미지 캡처

 

배치 스크립트를 만들어, 위 일련의 과정을 자동화할 수 있다.

아래 스크립트를 메모장에 적고, 확장자를 .bat로 바꿔서 저장하고 실행하면 빠르게 작동하는 캡처 스크립트가 완성된다.

@echo off

set /p file_name="Input file name : "

adb shell screencap -p /sdcard/screenshot.png

adb pull /sdcard/screenshot.png %file_name%.png

@echo off는 배치 스크립트가 깔끔하게 나오게 하는 기능이다. (실행 과정을 일일이 보여주는 "복창" 기능을 끄게 함)

file_name 변수에 파일명을 집어넣고,

스크린샷을 찍고,

추출할 때 %file_name% 을 이용해 png 이름을 파일명으로 저장한다.

 

📌 사용 방법

  1. 메모장에 위 스크립트 붙여 넣기 후 .bat 확장자로 저장 (adb_screenshot.bat)
  2. 배치 스크립트를 실행 (adb_screenshot.bat)
  3. 파일명을 작성 (영어로 작성)
  4. 자동으로 스크린샷 촬영 → "파일명.png" 파일이 PC로 이동

 

 

adb shell screencap -p /sdcard/screenshot.png 명령어를 반복하면, 기존 저장된 동일명의 이미지는 사라진다.

혹시 모바일 기기 용량 걱정에 직접 지우고 싶으면, 아래 명령어를 추가하면 된다.

adb shell rm /sdcard/screenshot.png

 

이제, 배치파일을 실행하고 파일명을 적는 것 만으로 자동으로 스크린숏이 저장되고, 컴퓨터로 옮길 수 있다!

 


4. 녹화

캡처가 있으면, 녹화 기능 또한 있다.

아래는 녹화 기능 명령어를 소개한다.

adb shell screenrecord /sdcard/record.mp4

해당 스크립트를 입력하면, 최대 3분까지 녹화가 된다.

중간에 Ctrl + C를 눌러 영상 녹화를 중단할 수 있다.

 

캡처와 마찬가지로, 일련의 과정을 배치 스크립트로 자동화할 수 있다.

 

@echo off

set /p file_name="Input file name : "

echo Recording...

echo press Ctrl + C and "N" to quit recording

adb shell screenrecord /sdcard/record.mp4

adb pull /sdcard/record.mp4 %file_name%.mp4

위와 유사하나, Ctrl + C를 누른 후 "N"을 입력하라는 안내 문구를 추가했다.

 

📌 사용 방법

  1. 메모장에 위 스크립트 붙여 넣기 후 .bat 확장자로 저장 (adb_screenrecord.bat)
  2. 배치 스크립트를 실행 (adb_screenrecord.bat)
  3. 파일명을 작성 (영어로 작성)
  4. 자동으로 스크린샷 촬영 → "파일명.mp4" 파일이  PC로 이동

 

배치 스크립트에서 Ctrl + C 는 스크립트 작업을 종료한다는 키

* Ctrl + C를 누르고, 위와같이 N 입력 후 Enter을 해야 스크립트가 진행된다.


5. 마침

adb 중 아주 기초적이고 단순한 기능이고, QA 업무를 조금이라도 해본 사람들이면 아마 쉽게 알 내용들이다..만!

분명 메신저로 파일을 옮기고 있을 사람들이 분명 있을 것 같아서.. 도움이 될 수도 있을 것 같아 길게 작성해 봤다!!

다음번에는, ffmpeg를 이용해 영상을 압축하고, 자르는 기능을 소개하려고 한다..!

+ Recent posts