영상 링크 : https://www.youtube.com/watch?v=DwqwUsFmoCU

 

1. 무엇을 소개하는가?

토스 닥터라고 부르는, 스모크 테스트 자동화 툴을 소개한다.

메신저에서 /토스닥터 를 입력하고 몇가지 옵션을 선택하면 Appium을 이용해 테스트 스크립트를 실행하고, 테스트 결과를 출력하는 일종의 "딸깍" 하나에 20분치 업무를 수행해주는 툴이다.

*스모크 테스트 : 주요 기능 테스트를 빠르게 하는 것

2. 도입 배경

기존에는 수동 테스트에 너무 많은 인력 소모가 있었던 것 같다.

1회 릴리즈 할 때 평균 RC 빌드를 5회 발행하고,

1년간 Android와 iOS에서 RC 빌드를 540회 발행했으며,

기존 RC 빌드를 1회 수동 테스트하는 데에 평균 20분 걸린 것을 계산하여 총 179시간의 비용이 들었다고 한다.

**RC 빌드 : 출시 후보

하지만 토스 닥터 자동화 툴을 사용했을 때, 자동 테스트로 평균 10분 단축시키면서 두가지 확실한 이득을 볼 수 있었다.

  1. 총 RC 빌드 테스트 시간을 90 시간을 아낀다.
  2. 179시간 * 수동 테스트 참여 인원의 비용을 아낀다.

또한, RC 빌드가 발행되었을 때 기존 업무를 중단하고 다른 업무로 바꿀 때의 집중력 분산, 수동 테스트를 반복할 때에 오는 업무 피로감 등의 보이지 않는 이점 또한 얻을 수 있었다.

3. 주요한 세가지 특징

토스 닥터 컨퍼런스에서 세가지 주요한 세가지 특징을 소개했다.

  1. webdriver 세션 재사용하기
  2. 자동으로 테스트 결과 기록하기
  3. 실시간으로 테스트 진행 상황 모니터링하기

1번으로는, @pytest.fixture 이라고 부르는 데코레이터를 사용했다고 한다.

반복되는 세팅 (앱을 켜기, 로그인하기 등) 을 각 세션을 테스트 할 때 마다 실행한다면 반복되는 코드가 나올 뿐만 아니라 매번 재실행하는데에 시간 소요도 커지게 된다.

그런 낭비를 줄여주는 기능을 소개하는 것으로 보인다.

 

2번으로는, pytest의 testrail 플러그인을 사용해 테스트 결과를 testrail api로 전달하는 방식으로 구현했다고 한다.

테스트레일에 ID를 지정하고, pytest의 testrail 플러그인에 ID를 1대1 매칭해놓으면 testrail에 결과가 보고된다고 한다.

 

3번으로는, 테스트 자동화 중 테스트 시작, 성공, 실패, 경고를 통해 테스트 진행 상태를 실시간으로 볼 수 있게 구현했다.

2번에서 테스트 결과가 기록되더라도 "이걸 실시간으로 어떻게 보느냐?" 에 대한 해답을 내놓았다.

실제로 메신저에 구현한 것을 보면, 대강 이런식이다.

🎯 탭 노출 확인

✅ 로그인 (0.5s)     <- Pass

✅ 1번 탭 노출 확인 (0.3s)     <- Pass

✅ 2번 탭 노출 확인 (0.3s)     <- Pass

🔥 3번 탭 노출 확인 (0.3s)    <- Fail

⚠️ 4번 탭 노출 확인 (0.3s)    <-warn

이런식으로, 어떤 기능을 테스트하는지, 성공하였는지, Fail하였는지, 몇초 걸렸는지를 한눈에 볼 수 있게 완성도 높은 구현을 했다.

 

주요한 세가지 특징이라고 말을 했는데, 굉장히 훌륭하고 꼭 필요한 기능일 것 같다.

그리고, 굉장히 깔끔하다!

4. 느낀 점

첫 회사에서, 매 빌드마다 스모크 테스트와 같은 메뉴얼 테스트를 수동으로 한 경험이 있다.

그때 당시, 수동 테스트를 매번 반복하는 과정이 썩 즐겁지만은 않았고 기계가 된 기분이기도 했었다.

지금으로 와서, 토스 닥터와 같은 자동화에 영감을 받고 충분한 공부 시간과 역량을 갖춘다면 자동화를 구현해보고 싶을 것 같다.

하지만 과연 토스 닥터와 같이 "잘" 만들 수 있을까?

위의 주요한 세가지 특징 중 몇개나 구현이 가능할까?

한번 도전해보고싶다. 최근 시간 여유가 있는데, 한번 기획하고 만들어보는것도 좋을듯!

0. 개요

이전 포스트 (https://janguri.tistory.com/8) 에서 ffmpeg를 이용해 영상을 효율적으로 다루게 되었다.

이번 글에서는, 이전에 만든 배치파일들을 효율적으로 통합하여 사용하는 방법을 소개한다.


1. Batch Script 통합

먼저 개인적인 경험을 소개하자면, 첫 회사에서 맨땅에 배치 스크립트를 만들면서 아래 이미지처럼 배치 스크립트가 많아져 불편한 경험이 있었다.

그래서, 최종적으로 하나의 통합 툴을 만들어 사용을 조금 더 편리하게 개선하게 되었다.

위 이미지와 같이 여러 배치 스크립트를 하나에 모아두고, 숫자를 입력 해 해당하는 행동을 하는 통합 툴을 만들어냈다.


2. 통합 방식

숫자를 입력 받으면, 여러가지 방법이 있으나 경험 상 두가지 방법을 선택해 사용했다.

  1. batch 파일을 불러(call) 실행하기
  2. 한 배치 스크립트에 모든 명령어 다 집어넣고 그 명령어 찾아가(goto) 실행하기

1번 방식의 경우, 기존에 만들었던 배치파일을 한 폴더에 다 넣고 통합 배치 스크립트에서 필요할때 불러 쓰는 방식이다.

장점으로는, 수정이 필요하면 해당 배치 파일을 꺼내 수정하면 되니 편리하다는 점.

단점으로는, 폴더 하나가 더 있어서 거슬릴 수도 있다 정도?

2번 방식의 경우, 통합 배치 스크립트에 모든 스크립트를 때려박는 방식이다.

장점으로는, 배치스크립트 단 하나만 있으면 되니 매우 깔끔하다!

단점으로는, 수정이 필요할 때 하나하나 찾아가야하니 수정이 불편하다는 점.

아래 두 코드 예시를 보면 이해가 쉬울것이다.

 

REM 1번 방식 / call로 불러들이기

@echo off
:loop
cls
chcp 65001 >nul
echo [1] capture
echo [2] record
echo [3] compress
echo [4] cut
echo [5] gif
echo [6] png
set /p num="Select number : "

if %num%==1 call batch\capture.bat
if %num%==2 call batch\record.bat
if %num%==3 call batch\compress.bat
if %num%==4 call batch\cut.bat
if %num%==5 call batch\gif.bat
if %num%==6 call batch\png.bat
goto loop

1번 방식의 스크립트다.

숫자를 입력하면, call 명령어를 통해 batch 폴더 내의 배치스크립트를 실행시키고, loop를 통해 다시 처음 위치로 이동하는 형식이다.

REM 2번 방식 //goto 명령어로 찾아가기

@echo off
:loop
cls
chcp 65001 >nul
echo [1] capture
echo [2] record
echo [3] compress
echo [4] cut
echo [5] gif
echo [6] png
set /p num="Select number : "

if %num%==1 goto capture
if %num%==2 goto record
if %num%==3 goto compress
if %num%==4 goto cut
if %num%==5 goto gif
if %num%==6 goto png
goto loop

:capture
echo this is capture script
goto loop
:record
echo this is record script
goto loop
:compress
echo this is compress script
goto loop
:cut
echo this is cut script
goto loop
:gif
echo this is gif script
goto loop
:png
echo this is png script
goto loop

2번 방식의 스크립트다.

숫자를 입력하면, goto 명령어를 통해 원하는 위치로 이동해 스크립트를 실행하고, 다시 loop 위치로 이동하는 형식이다.

 

사실 첫 선택이 중요하진 않다. 규모가 커지기 전에 알맞게 리팩토링 하면 된다. ^ㅇ^

여기서는 1번 방식 (call) 을 사용하여 불러 쓰는, 파이썬으로 치면 모듈 호출과 같은 느낌으로 만들어 보겠다.


3. 호출

우선, 아래 이미지와 같은 폴더 구조를 만들었다.

Tool.bat에서 batch\실행할스크립트.bat 을 넣어주면 끝!

이전에 만들어 둔 캡쳐 스크립트를 capture.bat에 넣어준다.

set /p file_name="Input file name : "
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png %file_name%.png

그런 후, 숫자 1을 입력해 capture.bat이 작동하는지에 대해 확인을 하면

  1. [1] capture 을 입력해서
  2. batch\capture.bat 파일이 열리고
  3. capture.bat 파일이 끝날 때 goto loop을 통해 :loop으로 이동된다.

파일은 capture.bat이 위치한 폴더에 생성되지 않고 Tool.bat에서 생성된다.

 

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

*화면 녹화

set /p file_name="Input file name : " 
ffmpeg -i %file_name% -vcodec libx264 -crf 28 -preset slow output_%file_name%
cls
set /p answer=Delete Original? [y/n] :
if %answer%==n goto quit
if %answer%==N goto quit
del %file_name%
ren output_%file_name% %file_name%
:quit

* 영상 압축

** Deleter Original? 을 통해 변경 전의 파일을 지우고 압축된 파일을 기존 파일명으로 변경할지의 분기점을 추가했다.

 

set /p file_name="Input file name : " 
echo enter Start time and finish time...
set /p start_time="Start time : "
set /p finish_time="Finish time : "
ffmpeg -i %file_name% -ss %start_time% -to %finish_time% output_%file_name%
set /p answer=Delete Original? [y/n]
if %answer%==n goto quit
if %answer%==N goto quit
del %file_name%
ren output_%file_name% %file_name%
:quit

* 영상 자르기

 

set /p file_name="Input file name : " 
ffmpeg -i %file_name% -vf "fps=8, palettegen=max_colors=32" -y palette.png
ffmpeg -i %file_name% -i palette.png -filter_complex "fps=8,paletteuse=dither=bayer" -b:v 1000k %file_name:~0,-4%.gif
del palette.png
:quit

* gif 만들기

**배치 파일에서 문자열 추출 규칙을 활용해, %file_name:~0,-4%로 작성하였다. (0번째부터 출력하는데 뒤에 .mp4 제거)
참고 : https://sysdocu.tistory.com/1516

 

set /p file_name="Input file name : " 
if not exist frames md frames
set /p frame_per_second=" How may Frames per second? : "
ffmpeg -i %file_name% -vf "fps=%frame_per_second%" frames/%%d.png
start frames

*png 만들기

**파일명을 입력 후, 초당 프레임을 설정할 수 있는 방식으로 구현해냈다.

*** frames 폴더가 없으면 만들고, 작업 후 frames 폴더를 자동으로 실행하게 구현했다.

 


4. 오류

명령어를 통해 생성된 파일을 삭제하거나이동할때 문제가 발생할 수도 있다.

그럴때를 대비해, adb 명령어를 재시작하는 코드를 추가했다.

if %num%==7 adb kill-server

7번을 입력했을 때 , adb kill-server을 추가해줬다.

뭐.. 다른 방법이 있을 수도 있지만 그냥 단순히 이렇게 재시작해주는 방법으로 해결했다.

 


5. 결론

말고도, 배치 스크립트를 활용하는 방법이 무궁무진하다!

예로, 아래와 같이 이쁜 색상코드를 넣을 수도 있다. (ANSI ESCAPE CODE 검색)

바로 다음으로, 배치스크립트로 병렬 실행을 (다소 억지스럽게) 구현한 방법을 소개하고자 한다.

0. 개요

이전 포스트 (https://janguri.tistory.com/6) 에서, adb를 활용해 모바일의 이슈 이미지와 영상을 간편하게 확보할 수 있었다.

이번 글에서는, 확보한 영상을 효과적으로 편집하여 이슈 리포트하기 용이하게 바꾸는 방법을 소개한다.


1. FFmpeg란?

 

FFmpeg는 동영상 및 오디오를 인코딩, 디코딩, 변환, 스트리밍할 수 있는 강력한 오픈소스 멀티미디어 프레임워크.

영상 관련 작업을 할 때 자동으로 해결할 수 있고, ADB와 마찬가지로 CLI 기반이라 ADB와 통합하기 간편하다.

그리고, 오픈소스다!


2. FFmpeg 설치

ADB와 마찬가지로, FFmpeg 설치 글을 보면 쉽게 다운로드 할 수 있다.

*ffmpeg는 essentials,full 버전 두개가 있는데, 간단한 명령어만 사용하기에 essentials로도 충분한 것 같다.

혹시 심화적으로 활용할 거라면 그때가서 full 다운로드 하면 될 것 같다.

다만, 다운로드는 소스코드가 아닌 Get packages & executable files를 선택해야 한다!

좌측 하단에 있는 OS 中 선택

 

ADB와 마찬가지로 FFmpeg도

  1. FFmpeg를 OS에 맞게 설치 후 압축 해제
  2. 환경 변수 설정

을 해준 후, 명령 프롬프트(cmd) 창에서 ffmpeg를 입력해보면

이런 식으로 출력이 된다면 성공이다!


3. 압축

QA 업무를 하다보면 이슈 영상이 보통 10초에서, 길면 1분가량 확보되곤 한다.

샘플로 약 14초가량 일반적인 게임을 S24 Ultra 기종으로 녹화하자, 36 MB의 영상이 녹화되었다.

아래는 아주 간단한 ffmpeg 예시다!

ffmpeg -i Test.mp4 Output.mp4

정말 단순하게도, Test.mp4 영상을 ffmpeg에 input해서 Output.mp4로 바꿔줬다.

그런데 결과는,

위와 같이, 용량이 1/3이나 감소한 결과를 얻을 수 있었다!

그렇다면 더 압축하는 방법이 있을까?

ffmpeg에는 옵션을 넣어서 추가적인 압축 형식을 만들 수 있다.

다양한 옵션이 있지만, 아래가 가장 자주 쓰이는 예제라고 한다.

ffmpeg -i test.mp4 -vcodec libx264 -crf 28 -preset slow output2.mp4

결과를 보면,

1/6 이라는 엄청난 압축률을 구현할 수 있다!

아래는 지피티에게 물어본 압축 옵션들이다.

명령어 설명
-vf scale=1280:720 해상도를 1280x720(720p)로 축소 (화질 유지하면서 용량 절감)
-crf 28 H.264 화질 기반 압축 (값이 클수록 용량↓, 화질↓) (보통 18~28 사용)
-preset slow 압축 효율 최적화 (속도를 늦추는 대신 용량 감소) (ultrafast ~ veryslow 선택 가능)
-c:v libx264 H.264 코덱으로 압축 (높은 호환성 & 압축률)
-b:v 1000k 비디오 비트레이트를 1000kbps로 제한 (낮을수록 용량↓)
-r 24 프레임 레이트를 24fps로 변경 (프레임 수 줄여 용량↓)

체감상 -crf 옵션을 28 초과해도 약간은 뭉개지지만 내용 식별에는 무리가 없었다.

업무에 맞게 잘 테스트해보고 압축하면 용량을 효율적으로 압축시켜 공유할 수 있을 것이다.


4. 자르기

이슈 영상을 보면, 항상 시작 시간부터 끝나는 시간까지 이슈가 꽉 녹화되는 경우는 없다.

보통 시작하고 몇초 후, 그리고 끝나기 몇초 전에 이슈 상황이 녹화되곤 한다.

아래는, 아주 간단한 영상 자르기 명령어를 소개한다!

ffmpeg -i test.mp4 -ss 2 -to 10 output.mp4

-ss : 시작 초

2 : 2초부터

-to : 끝나는 초

10 : 10초까지

즉, 2초부터 10초까지의 영상을 남기고 자르겠다는 뜻.

14초의 영상이, 8초 영상으로 잘린 결과를 확인할 수 있다.

기본적으로 ffmpeg를 걸쳤기에 ffmpeg의 영상 압축 효과도 덤으로!

만약 시작 시간부터 n초동안 유지하고싶다면?

ffmpeg -i test.mp4 -ss 2 -t 8 output2.mp4

똑같은 결과가 나오는 것을 확인할 수 있다.


5. GIF로 바꾸기

또, 가끔 짧은 이슈 영상은 gif로 공유하면 편하게 이슈 리포트가 가능하다.

이슈를 받아보는 입장에서, 영상을 다운로드해서 켜는 것보다 gif파일이 이슈 리포트와 함께 나오면 보기 편하기 때문.

 

그래서 만약 gif로 그냥 변환해버리면?

ffmpeg -i output.mp4 output.gif

분명 2mb도 안되는 mp4 파일이 110mb짜리 영상이 돼버렸다......

 

이를 해결하기 위해, GPT의 도움을 받자면

ffmpeg -i output.mp4 -vf "fps=8, palettegen=max_colors=32" -y palette.png
ffmpeg -i output.mp4 -i palette.png -filter_complex "fps=8,paletteuse=dither=bayer" -b:v 1000k output.gif

위와 같은 두 줄의 코드로 실행하면 적당한 크기와 화질의 영상 파일이 palette.png와 함께 생성된다.

약 8초간의 영상을 gif파일로 변환

옵션에 대한 설명을 하자면,

옵션 설명
fps=8 프레임을 8fps로 줄여 용량 감소
palettegen=max_colors=32 GIF 색상을 32색으로 제한 (기본 256색)
paletteuse=dither=bayer 색상 품질 유지하면서 용량 압축
-b:v 1000k 비디오 비트레이트를 1000kbps로 제한하여 용량 절약

이렇다!

영상 압축처럼, 각자 테스트해보고 원하는 품질의 gif 파일을 뽑아내면 될 것 같다.


6. PNG 변환

아주 단순한 기능이다. 아래 예제를 보면

ffmpeg -i test.mp4 -vf "fps=1" %d.png

test.mp4 파일을 fps=1 단위로 쪼개서 png로 변환해준다.

이전에 -ss -to 기능을 활용해 2초부터 8초 사이의 fps=1 단위로 png로 변환해 줄수도 있다.

-vf "fps=1" 옵션은 fps=2로 변경 시 위 이미지의 2배 결과를 얻을 수 있다. 즉, 0.5초마다 사진이 찍히는 것.

조금 더 디테일하게 영상을 찍어야한다면 저 수치를 건들여 줄 수 있을것이다.

옵션을 없애도 실행은 되지만, 모든 프레임을 다 찍어버리는 탓에 꼭 fps를 명시해줘야 컴퓨터 건강에 이롭다.


7. 마침

ffmpeg 중에서도 매우 단순 기능만을 나열해봤다.

체감상 QA 업무중에는 위 4개 기능이 가장 많이 쓰였고, 그 외의 기능은 필요할때 찾아 쓰곤 했지만 딱히 저 위의 세 기능 말고는 더 쓰지는 않았었다.

이전에 사용한 adb 기능을 연계해서, 영상 녹화 이후 적절히 잘라서 이슈 리포트에 큰 도움이 되었다.

다음에는, adb와 ffmpeg 기능들을 통합하여 더욱 간편하게 사용하는 배치 스크립트 방법을 포스트하려고 한다!

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