[CircleCI, Selenium, BrowserStack]連携する方法

スポンサーリンク

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

■目的&条件

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

Run Selenium tests with Python | BrowserStack Docs
A guide to running automated Selenium tests with Python on BrowserStack Automate.

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

40通り以上の自動マルチブラウザテストをSelenium x CircleCI x BrowserStackで実現する| PLAID engineer blog
CircleCI上で、BrowserStackを利用したマルチブラウザJavascript Test,Selenium Test を実現している方法についてご紹介します。Selenium webdriver, CircleCI, Brows...

■目標

次、CircleCIでSeleniumを動かす
その次、CircleCIでSeleniumを動かし、BrowserStackと連携させる

CircleCIについて

https://blog.trident-qa.com/2015/12/selenium-on-circle-ci/(リンク切れ)

CircleCIがビルドに使用するマシンはデフォルトではLinuxですが、このマシンには次のソフトウェアが既にセットアップされています1 。
Firefox、Chromeが最初からインストールされています。
ブラウザテストに必要なXvfbの仮想ディスプレイもセットアップ済です。
ChromeDriverとPhantomJSの実行ファイルもあらかじめPathの通った場所にセットアップ済です。

■追記

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

[CircleCI,Selenium]エラー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が必要だったり不要だったりちょくちょく変わります。

コメント

タイトルとURLをコピーしました