CircleCI & selenium & browserstack & python 連携

※この辺は、情報がなかなか見つけれなかったので、もう少し細かく書きたい。。

■目的&条件
browserstackで、seleniumを動かす
かつ、ローカルアドレスのサイトのテストを行う
かつ、python、Macで実行

$ ./BrowserStackLocal ”Access key”
$ python test.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_cap = {'browser': 'Firefox', 'browser_version': '43.0', 'os': 'Windows', 'os_version': '10', 'resolution': '1680x1050'}
# ローカルアドレスにアクセスするための設定、これ重要!!
desired_cap['browserstack.local'] = True

# ローカルではfirefoxで起動していたのを変更
#driver = webdriver.Firefox()
driver = webdriver.Remote(command_executor='http://”Username”:”Access key”@hub.browserstack.com:80/wd/hub', desired_capabilities=desired_cap)

以下の設定を入れて、
desired_cap[‘browserstack.local’] = True
以下を実行していない場合、
$ ./BrowserStackLocal ”Access key”
以下のような、エラーがでました。
WebDriverException: Message: [browserstack.local] is set to true but local testing through BrowserStack is not connected.

browserstackのPython Documentation

最終的にやりたいこと
40通り以上の自動マルチブラウザテストをSelenium x CircleCI x BrowserStackで実現する

■目標
次、CircleCIでSeleniumを動かす
その次、CircleCIでSeleniumを動かし、browserstackと連携させる

CircleCIについて
CircleCIクラウド環境でSeleniumテストを実行する

CircleCIがビルドに使用するマシンはデフォルトではLinuxですが、このマシンには次のソフトウェアが既にセットアップされています1 。

Firefox、Chromeが最初からインストールされています。
ブラウザテストに必要なXvfbの仮想ディスプレイもセットアップ済です。
ChromeDriverとPhantomJSの実行ファイルもあらかじめPathの通った場所にセットアップ済です。3

■追記
CircleCIでもSeleniumを動かせました。が、変なところで躓いたので、その点を残しておきます。

circleci & selenium & python でImportError: No module named selenium
CircleCIでSeleniumを実行する方法 こちらのサイトを参考に環境を構築したのですが、エラーが発生しました。 全く同じコー...

Seleniumが動けば、browserstackも動きました。

CircleCIのcircle.yml、コード例

machine:
  timezone: Asia/Tokyo

dependencies:
  pre:
    - sudo pip install --upgrade pip
    - sudo pip install selenium

test:
  pre:
    - ./bin/BrowserStackLocal $BSL_KEY:
         background: true
    - echo "-----start test-----"
  override:
    - python scripts/browserstack_test.py
  post:
    - echo "-----end test-----"

$BSL_KEYは、別ファイルから読み込むなり、環境変数に書き込むなりして取得するようにしています。
pip installについては、sudoが必要だったり不要だったりちょくちょく変わります。

a

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク