์ก ํ๋ฉด ์บก์ณ๊ฐ ๊ฐ๋ฅํ๋ฐ ํ๋ฉด ๋
นํ๊ฐ ๊ฐ๋ฅํ ๊น? ํ๋ฉด๋
นํ๋ ์ข ๋ฐฉ๋ฒ์ด ์ด๋ ต์ง ์์๊น ๊ณ ๋ฏผํ์
จ๋ ๋ถ๋ค์ ํด๋น ํฌ์คํ
์ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค. ๊ทธ ์ ์ ํ๋ฉด ์บก์ณ ๊ด๋ จํ ํฌ์คํ
์ ์๋ ํ์ธ ๋ถํ๋๋ฆฝ๋๋ค.
์ฌ์ ์ค๋น๋ฌผ
- ์๋๋ก์ด๋ ๊ณต๊ธฐ๊ณ
- python ์ค์น , appium server gui ์ค์น
- adb ์ค์น
์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ์ผ๋ก ์๊ฐ๋๋ฆฌ๋ ค ํฉ๋๋ค.
- ํ๋ฉด ๋ นํํ์ผ์ ์ ์ฅํ ๊ฒฝ๋ก์ ๋ฏธ๋ฆฌ ๋ค๋ฅธ .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 ์ค์น ๋ฐ ์ค์ ๊ฐ์ด๋ ์
๋๋ค.
๋๊ธ