BrowserStackを使ってSeleniumのテストを実施する


事前準備

アカウント登録

  • 新規登録ページからアカウント登録する
  • Trialアカウント(無料)もあります
    • 手動テスト/自動テストに使える時間はそれぞれ30分/100分
    • ブラウザを立ち上げている時間はずっとその時間分減っていくのでご注意を
    • 手動テストに関してはこちらに記事がありました

実験環境の構築&必要なものをインストール

  • EC2 Amazon Linux small instance
  • 以下はEC2にはいってないので要インストール
    • Ruby(RVM) : 1.9.3

RVMのインストール(Ruby 1.9.3をインストール)

$ curl -L get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm
$ rvm install 1.9.3
$ rvm rubygems latest
$ rvm use --default 1.9.3

テスト作成

  • BrowserStackをググるだけの簡単なお仕事をさせてみる
  • AUTOMATEボタンをクリックする
  • Getting started節にある作業をしていく(作業は2つだけ)
    • $ gem install selenium-webdriver を実行
    • 以下のようにサンプルコードをコピペしてあげる
browserstack_test.rb
require 'rubygems'
require 'selenium-webdriver'

# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browser'] = 'Safari'
caps['browser_version'] = '7.0'
caps['os'] = 'OS X'
caps['os_version'] = 'Mavericks'
caps['resolution'] = '1024x768'
caps["browserstack.debug"] = "true"
caps["name"] = "Testing Selenium 2 with Ruby on BrowserStack"

driver = Selenium::WebDriver.for(:remote,
  :url => "http://[Username]:[AccessKey]@hub.browserstack.com/wd/hub",
  :desired_capabilities => caps)

  driver.navigate.to "http://www.google.com/ncr"
  element = driver.find_element(:name, 'q')
  element.send_keys "BrowserStack"
  element.submit
  puts driver.title
  driver.quit
  • Username, AccessKeyはAUTOMATEページ内の「Username and Access Keys」で確認できる

テスト実行

  • rubyコマンドで実行できます
    • Cucumberでも、Rspecでも同じように実行してあげれば良い
    • ただ、実行する環境がRemoteというだけ
$ ruby browserstack_test.rb

テスト結果

  • SauceLabsと違って一部始終を動画で撮ってくれる訳ではないが、ページ遷移の度にスクリーンショットは残してくれる
  • テスト結果は自分のみ閲覧可能
    • ログインしていなければログイン画面へ
    • アカウントを登録していても権限がないため404でRailsっぽいエラーの画面へ
  • チームでの共有で閲覧もできるのだと思われる(今回はTrialアカウントのみの調査なので未実施)

備考

  • SauceLabs導入でも同じようなテストをしてみたが、圧倒的にbrowserStackのほうが早い(気がする)

~ただの宣伝~

  • 全国のSeleniumer必読
  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください