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を実行できるようにしたいけど、今回はここまでにしておく。