アプリ開発において自動化しておきたいものにテストの自動化がある。
今までSOY CMS / ShopはSeleniumのFirefoxプラグインでGUIで一つずつ動作を登録しながらUIのテストコードを作成していたけれども、
Selenium - Web Browser Automation
Jenkinsさんのお力を借りて、
JenkinsさんにSeleniumを実行してもらうべく、
PHPのコードでSeleniumのUIテストのコードを書き直すことにした。
FacebookがSeleniumをPHPで記述できるようにするphp-webdriverというライブラリを公開しているので、php-webdriverを利用する。
facebook/php-webdriver: A php client for webdriver.
記述してみて、最初の慣れるまでは様々な細かい指示で苦労した。
その苦労をメモとして残しておく。
今回はSelenium + php-webdriverが使用できるようになるまでを記載する。
環境
OS : Ubuntu 17.04
最初にSeleniumのダウンロード
下記ページでSeleniumの最新版を調べておく
http://www.seleniumhq.org/download/
私が作業した時はSeleniumの最新版は3.7.1だったので、このバージョンでのインストール内容を記載する。
mkdir selenium cd selenium sudo wget http://selenium-release.storage.googleapis.com/3.7/selenium-server-standalone-3.7.1.jar java -jar selenium-server-standalone-3.7.1.jar
ホームディレクトリ以下にseleniumディレクトリを設けて、そこでSeleniumを動かすことにしています。
※Seleniumのバックグラウンド実行の場合は最後の行の処理の後に&を付与
java -jar selenium-server-standalone-3.7.1.jar
続いて、Seleniumでどのブラウザを用いてUIテストを行うか?で
UIテスト用のブラウザのドライバをインストールしておく必要がある。
私が愛用しているのがChromiumなので、Chromiumで動かすためのChromeドライバーをインストールしておく。
※ChromeドライバはChromeとChromiumの両方を動かすことができる
はじめに下記のサイトでChromeDriverのバージョンを調べておく。
https://sites.google.com/a/chromium.org/chromedriver/downloads
作業した時は2.33だったので、2.33で話を進める。
cd ~/download wget http://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/bin
これでSeleniumでChromiumを操作できるようなった。
続いて、php-webdriverをインストールする必要があるんだけど、
その前にcomposerというPHP用のパッケージ管理をインストールしておく必要がある。
というわけで、
sudo curl -sS https://getcomposer.org/installer | php
これでcomposerをインストールする。
あとはphp-webdriverを入れて、コードを書き始めるところだけれども、
今回は/home/saito/workspace/soycms/以下でアプリの開発を行うので、
soycmsディレクトリ以下にphp-webdriverをインストールしてみる。
cd ~/workspace/soycms php composer.phar require facebook/webdriver
※下記はcomposerのパスを通して実行を行いたいの場合
sudo curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/bin/composer cd ~/workspace/soycms composer require facebook/webdriver
※2020年5月8日追記
Composerのパスが変更になった。
→変更後:composer require php-webdriver/webdriver
これで準備OKだ。
次回、簡単なテストコードを書いてみる。
2019年12月17日追記
Ubuntu 19.10のSnap版のChromiumでテストの自動化が実行されないのでその時の対処
Ubuntu19.10でSelenium + php-webdriverが動作しなかった時の対処