Skip to content

Instantly share code, notes, and snippets.

@ruseel
Last active May 11, 2016 12:54
Show Gist options
  • Save ruseel/898c6ed3e3d2cd45bdf8585c0ce8c9db to your computer and use it in GitHub Desktop.
Save ruseel/898c6ed3e3d2cd45bdf8585c0ce8c9db to your computer and use it in GitHub Desktop.
aws device farm에서 web page를 시험하고 싶다.

aws device farm에서 web page를 시험하고 싶다.

그냥 webpage 하나만 가져와서 assert도 없이 screen shot을 하나 찍고 싶다고 하자. 그렇게 하다가 assert 하나 정도만 어떻게 해보고 싶다고 하자.

  1. 어떻게 할까?

devicefarm에서는 appium을 쓴다고 하니 local appium으로 시험하다가 devicefarm에 올려서 병렬로 시험하고 싶다. local에 appium을 깔고 싶다. 2) 어떻게 할까?


2) 어떻게 할까? local에 appium을 깔아서 돌리기

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()

1) 어떻게 할까? devicefarm에서 돌리기

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 에 나온 것 처럼 그렇게 한다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment