์ก ํ๋ฉด ์บก์ณ๊ฐ ๊ฐ๋ฅํ๋ฐ ํ๋ฉด ๋
นํ๊ฐ ๊ฐ๋ฅํ ๊น? ํ๋ฉด๋
นํ๋ ์ข ๋ฐฉ๋ฒ์ด ์ด๋ ต์ง ์์๊น ๊ณ ๋ฏผํ์
จ๋ ๋ถ๋ค์ ํด๋น ํฌ์คํ
์ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค. ๊ทธ ์ ์ ํ๋ฉด ์บก์ณ ๊ด๋ จํ ํฌ์คํ
์ ์๋ ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.
[๋ชจ๋ฐ์ผ ๋งคํฌ๋ก] ๋ด์ค URL ํด๋ฆญ ๋ฐ ๋ชจ๋ฐ์ผ ํ๋ฉด ์บก์ณ ์๋ํ, ๋ชจ๋ฐ์ผ ์คํฌ๋ฆฐ ์บก์ณ, selenium + appium + s
appium์ ์๊ณ ๋ถํฐ๋ ๋ชจ๋ฐ์ผ์์ ํ ์ ์๋ ๊ฒ๋ค์ด ๋ง์์ก์ด์. ์ฒ์ ๋ฐฐ์ธ ๋ ๋ชฐ๋๋๋ฐ ํ๋ค๋ณด๋, ๋ชจ๋ฐ์ผ ๋งคํฌ๋ก๋ ๋ค๋ค ์ด๊ฑธ๋ก ๊ตฌํํ๊ฒ ๊ตฌ๋ ๋ผ๋ ์๊ฐ์ ํ๊ฒ ๋์๋ต๋๋ค. ๋ผ๋ผ๋ ์ด๋ฐ๊ฒ ์์
odaily.tistory.com
์ฌ์ ์ค๋น๋ฌผ
- ์๋๋ก์ด๋ ๊ณต๊ธฐ๊ณ
- python ์ค์น , appium server gui ์ค์น
- adb ์ค์น
[์นด์นด์ค๋ทฐ ์๋ํ] ์นด๋ทฐ ๊ด๋ฆฌ ์๋ํ๋ฅผ ์ํ appium ์ฌ์ฉ ๋ง๋ณด๊ธฐ 1๋จ๊ณ
์๋์ด๊ฐ ์ด๋ฐ ํ ์คํธ ์๋ํ ํ๋ก๊ทธ๋จ์ด ์๋ค๋ ๊ฑธ ์๋ ค์ค์ ์ ํ๊ฒ ๋์์ต๋๋ค. ์ฒ์ ํด๋ณด๋ ๊ฒ์ด๋ผ์ ๋ฏ์ค์์ง๋ง, ๋ค๋ฅธ ์ธ์ด๋ค์ฒ๋ผ ์ฒซ ์ ํ ๋ง ์ํด๋ณด๋ฉด ๋ค ๋น์ทํ๊ณ ๊ฒฐ๊ตญ์ python์ผ๋ก ์ฝ๋ฉ
odaily.tistory.com
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์๊ฐ๋๋ฆฌ๋ ค ํฉ๋๋ค.
- ํ๋ฉด ๋ นํํ์ผ์ ์ ์ฅํ ๊ฒฝ๋ก์ ๋ฏธ๋ฆฌ ๋ค๋ฅธ .mp4 ํ์ผ์ ๋ฃ์ด๋๋ค
- ํ๋ฉด ๋ นํ๋ฅผ ์์ํ๊ณ ์ข ๋ฃํ๋ค
- ์ข ๋ฃ์ ๋์ค๋ output์ ๋ฐ์ ํด๋น ๊ฒฝ๋ก์ ๊ฐ์ .mp4 ์ด๋ฆ์ผ๋ก ๋ฎ์ด์ด๋ค.
์ ์ค๋ช
๊ณผ ๊ฐ์ด ํ๋ฉด ๋
นํ ํ์ผ์ ์ ์ฅํ ๊ฒฝ๋ก์ ๋ฏธ๋ฆฌ click.mp4๋ผ๋ ์์์ ๋ฃ์ด๋์์ต๋๋ค. ์์๋ก ๋ฃ์ด๋์ง ์๊ณ ํ๋ฉด ์ ค ์ข์ง๋ง, ๊ทธ๋ฌ๋ฉด ์ข ์ฝ๋๊ฐ ๋ณต์กํด์ ธ์ ์ ๋ ์ข ๋จ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ํํ๋ต๋๋ค. ์๋ฌด ์์์ด๋ค ๋ฃ์ด๋์๋ฉด ๋ฉ๋๋ค.

๊ฒฝ๋ก ์ค์ ๋ฐ ์ฑ ์คํ ์์ค
#๊ฒฝ๋ก์ง์
SCREEN_PATH = '%s/' % os.getcwd() + "recording/"
#์คํ์ํฌ์ฑ ์ค์
caps = {}
caps["platformName"] = "Android"
caps["appium:platformVersion"] = "6.0.1"
caps["appium:deviceName"] = "S916N"
caps["appium:app"] = "/Users/KakaoTalk.apk"
caps["appium:automationName"] = "Appium"
caps["appium:newCommandTImeout"] = 300
caps["appium:appPackage"] = "com.kakao.talk"
caps["appium:appActivity"] = "com.kakao.talk.activity.๋ฉ์ธActivity"
caps["appium:udid"] = "udid"
caps["appium:noReset"] = "true"
caps["appium:fullReset"] = "false"
caps["appium:ensureWebviewsHavePages"] = True
caps["appium:nativeWebScreenshot"] = True
caps["appium:newCommandTimeout"] = 3600
caps["appium:connectHardwareKeyboard"] = True
driver = webdriver.Remote("http://0.0.0.0:4723/wd/hub", caps)
๋ ์ฝ๋ฉ ์์
driver.start_recording_screen()
๋ ์ฝ๋ฉ ์์๊ณผ ์ข
๋ฃ ์ฌ์ด์๋ ์ฑ์์ ๋
นํ ํ๊ณ ์ถ์ ์ก์
์ ๋ํด ์ฝ๋ฉํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๋ ์ฝ๋ฉ ์ข ๋ฃ
video_rawdata = driver.stop_recording_screen()
filepath = os.path.join(SCREEN_PATH, "click.mp4")
with open(filepath,"wb") as vd:
vd.write(base64.b64decode(video_rawdata))

์ ๋ ๋
นํ ํ์ผ ๊ธฐ๋ฐ์ผ๋ก ํ
์คํธ ํด๋ณด๊ณ ์ถ์๊ฒ ์์ด์ ์ ํ๊ฒ ๋์๋ต๋๋ค. ๋ค๋ค selenium๊ณผ appium์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ๊ณ์ ๋ค๋ฉด ์ ์ฉํ๊ฒ ์ฌ์ฉํ์ธ์. ์ด ์ธ์ ๋ชจ๋ ๋ฐ๋ณต๋๋ ์์
์ด ์๋ํ ๋๋ ๊ทธ๋ ๊น์ง ์ด์ฌํ ์ ๋ณด ๊ณต์ ํ๊ฒ ์ต๋๋ค
์๋ ์์์ Appium ์ค์น ๋ฐ ์ค์ ๊ฐ์ด๋ ์
๋๋ค.
๋๊ธ