Selenium - Web Browser Automation
最近の記事でSOY CMS / ShopのUIテストをSeleniumのGUI(Firefoxのアドオン)からFacebook製のphp-webdriverへと作り変えた。
facebook/php-webdriver: A php client for webdriver.
テストを作ったのは良いけれど、ローカル環境だとテスト中に他の作業ができなくなるので、
さくらのVPSを借りてSeleniumを動かせるようにしてみた。
環境
さくらのVPS 512
OS Ubuntu 16.04
先に書いておくと、
VPS内のUbuntuはデスクトップ版ではないため、Selenium実行時に立ち上げるブラウザが立ち上がらない。
ブラウザを立ち上げるための仮想デスクトップ、
そもそもブラウザが入っていないということでChromium等を事前に入れて置かなければならない。
これに気が付くまでに半日かかった。
というわけで早速手順
・Apacheサーバ、PHPが動作する環境を設ける
・Javaのインストール
・Seleniumのダウンロード
・Jenkinsのインストール(今回は触れない)
・仮想デスクトップ(Xvfb)のインストール
・Chromiumのインストール
・Chromeドライバのダウンロード
・仮想デスクトップとSeleniumの起動
最初のApacheとPHPは下記の記事の通り
さくらのVPSにPHP7を入れてSOY CMSを動かしてみた
Apache2.4.27の標準設定ではHTTP/2が使用できなくなったのでその対応
Javaのインストールは下記のコマンドで実行
sudo apt-get install software-properties-common sudo apt-add-repository ppa:webupd8team/java sudo apt-get update sudo apt install oracle-java8-installer
※間違えてJava8を入れてしまった
Seleniumのダウンロードは下記の通り
mkdir /var/lib/selenium cd /var/lib/selenium sudo wget http://selenium-release.storage.googleapis.com/3.7/selenium-server-standalone-3.7.1.jar
※事前に公式サイトで新しいバージョンを確認しておきましょう
Selenium - Web Browser Automation
Jenkinsのインストールはそのうち記載する。
その時にJenkinsホーム直下のworkspaceにApacheのドキュメントルートの設定にも触れる。
仮想デスクトップ、ChuromiumとChromeドライバを入れる
sudo apt-get install xvfb sudo apt-get install chromium-browser # HOMEに戻る cd wget http://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/local/bin
諸々の準備ができたので、仮想デスクトップとSeleniumを同時に実行できるスクリプトファイルを作成
cd /var/lib/selenium sudo emacs load.sh
load.shは下記の通り
#!/bin/sh Xvfb :99 -screen 0 1280x1024x24 -ac & export DISPLAY=:99 && java -jar /var/lib/selenium/selenium-server-standalone-3.7.1.jar &
load.sh作成後
sudo chmod 755 load.sh /var/lib/selenium/load.sh
で仮想デスクトップとSeleniumを立ち上げて終了。
ブラウザを開き、
http://(VPSのIPアドレス):4444を開き、
Seleniumのページが表示されることを確認する。
Selenium + php-webdriverの動作確認はJenkinsを入れてから
再起動時にload.shを実行できるようにしたいけど、今回はここまでにしておく。