aws device farm에서 web page를 시험하고 싶다.
그냥 webpage 하나만 가져와서 assert도 없이 screen shot을 하나 찍고 싶다고 하자. 그렇게 하다가 assert 하나 정도만 어떻게 해보고 싶다고 하자.
- 어떻게 할까?
devicefarm에서는 appium을 쓴다고 하니 local appium으로 시험하다가 devicefarm에 올려서 병렬로 시험하고 싶다. local에 appium을 깔고 싶다. 2) 어떻게 할까?
2016.5월에 이미 패키징된 "appium.app"을 받아서 돌려보려고 했는데 뭔가 잘 안 되었다.
source에서 직접 써보자. github.com/appium/appium을 체크아웃 받고 설명서에 나온대로 열심히 해본다. 결국에는 node .
명령으로
실행할 수 있는 순간이 온다. 조심해야 할 것은 appium-doctor를 실행해서 환경변수나 필요한 프로그램들이 잘 깔린 것인지 확인하는 것이다.
그리고 node .
하고 나서도 REST server만 하나 뜬 것이지 Android나 iOS 에뮬레이터가 뜬 것이 아닌데
이 때 아래처럼 webdriver client로 접속하면 에뮬레이터를 알아서 띄우고 돌기 시작한다.
# test.rb
require "selenium/webdriver"
iphone_caps = Selenium::WebDriver::Remote::Capabilities.iphone()
iphone_caps['deviceName'] = 'iPhone Simulator'
iphone_caps['platformVersion'] = '9.2'
iphone_caps['platformName'] = 'iOS'
iphone_caps['browserName'] = 'Safari'
driver = Selenium::WebDriver.for(:remote,
:url => "http://localhost:4723/wd/hub",
:desired_capabilities => iphone_caps)
driver.get('http://saucelabs.com/test/guinea-pig')
puts "title of webpage is: #{driver.title()}"
driver.quit()
github.com/awslabs/aws-device-farm-sample-web-app-using-appium 을 참조해서 혹은 그대로 mvn package -DskipTest=true 로 zip을 만든 다음 AWS Console에서 TestNG로 "web app"으로 선택해서 만들어 돌린다.
{native,hybrid,webapp(그냥 browser에 웹사이트를 띄우는 것을 webapp이라고 device farm에서 부르는 듯하다)}과 {android,ios} 쌍이 있을 텐데 appium은 모두 다 지원한다. 그중에 webapp을 시험하려면 github.com/awslabs/aws-device-farm-sample-web-app-using-appium 에 나온 것 처럼 그렇게 한다.