Selenium 勉強会
調査で使用した環境
● Mac Book Air OS X 10.7.5
● PHP 5.3.26
● PHPUnit 3.7.28
● pear 1.9.4
● java 1.6.0_65
* 上記はMac上でインストール済みです。
* PHP及びjavaに関しては、Macにデフォルトでインストールされているもの
を使用しています。
目次
1.Seleniumについて
1-1 Seleniumとは
1-2 Seleniumの各ツール
1-3 Selenium Serverのダウンロード〜実行
2.Selenium Builderの使い方
2-1 インストール
2-2 各メニューの説明
2-3 テストの作成
2-4 テストの保存
3.SeleniumとPHPUnit
3-1 PHPUnit_Seleniumのインストール
3-2 Selenium BuilderからPHPUnit用テストケース作成
3-3 作成されるPHPUnitコード ~Sample~
1. Seleniumについて
1-1.Seleniumとは
● Webアプリケーションのテストを行うツールです。Webアプリケーション
のテストケースを作成しておくことで、テストをほぼ自動化することが出
来ます。
● IE,Firefox,Safari,Google Chrome 等複数のブラウザに対応しています。
● URL
http://www.seleniumhq.org/
➢ メリット
○ マルチブラウザ対応
○ テストケースの自動化が容易
➢ デメリット
○ Selenium2の情報はまだ少なく、Selenium1と混在しがち
1-2.Seleniumの各ツール
1. Selenium Server(旧Selenium RC)
Seleniumをリモート操作する為の機能です。
2. Selenium WebDriver(Selenium2)
Selenium RC(Selenium1)とWebDriverを統合したプロダクトです。WebDriver はネイティブな
ブラウザ機能あるいはブラウザ拡張を用いて,ブラウザを直接コントロール出来ます。
3. Selenium IDE
Selenium RC用のテストケースを簡単に作成できるFirefox用アドオンです。
4. Selenium Builder
Selenium1とSelenium2のテストケースを簡単に作成できるFirefox用アドオンです。
● ダウンロード
https://code.google.com/p/selenium/downloads/list
selenium-server-standalone-2.37.0.jarをクリックしダウンロード
● 実行
*JREが必要
$ java -jar selenium-server-standalone-2.37.0.jar -role hub
● コンソール画面
http://localhost:4444/grid/console
1-3.Selenium Serverのダウンロード~起動
2. Selenium Builderの使い方
1. Firefoxを起動しhttp://sebuilder.github.io/se-builder/へアクセスします。
2. Installボタンをクリックしてインストールします。
3. ツール -> Web開発 -> Launch Selenium Builderで起動出来たら完了です。
2-1.インストール
● File
o save
jsonフォーマットで保存します。
o Export
フォーマットを選択して保存します。
o Convert to Selenium 1(2)
レコードをSelenium1(2)へ変換します。
o Discard and start over
現在のレコードを破棄し、始めからやり直します。
● Record
o Record a verification
ボタンをクリックしてブラウザ上で検証する動作を指定すると、レコードが追加されます。
o Stop Recording
レコード追加を終了します。
2-2. 各メニューの説明
2-2. 各メニューの説明
● Run
o Run test locally
ローカルでテストを実行します。
o Run on Selenium Server
Selenium Server上でテストを実行します。
o Run suite locally
複数のテストスイートを実行。
● Suite
o Recode new Script
新規にテストスイートを追加します。
o Add Script from file
jsonファイルからテストスイートを追加します。
o Discard and start over
全てのテストスイートを破棄し、始めからやり直します。
2-2. 各メニューの説明
o Remove current script
現在のテストスイートを破棄します。
o <title xxxxx>
テストスイートを選択したタイトルのテストスイートに切り替えます 。
● Debug
o Disable/Enable breakpoints
追加したブレークポイントの有効/無効化を行います。
o Clear all breakpoints
ブレークポイントを全て解除します。
2-3. テストの作成
1. “ツール” -> “Web開発” -> “Launch Selenium Builder”でBuilderを起動しま
す。
2. 「Start recording at」下のテキストボックスにテストしたいURLを入力し
ます。
3. 「Selenium2」をクリックします。
4. 「Recode a verfication」をクリックします。
5. ウィンドウが切り替わったら、ブラウザでテストを行いたい操作をします。
6. レコードが追加されるので、必要に応じて、ポップアップメニューから編
集します。
7. “Run” -> “Run test locally”でテストが実行されます。
2-4. テストの保存
❏ JSONで保存する
1. “File”をクリックします。
2. “save”をクリックし、保存する場所を指定し、ファイル名を入力して保存
します。
{
"type": "script",
"seleniumVersion": "2",
"formatVersion": 1,
"steps": [
{
"type": "get", "url": "http://php_application_demo.com/bootstrap/examples/navbar/"
},
{
"type": "assertTextPresent",
"text": "Project name"
}
]
2-4. テストの保存
❏ フォーマットを指定して保存する
1. “File”をクリックします。
2. “export”をクリックし、表示された一覧から保存するフォーマットを指定
します。
3. 保存する場所を指定し、ファイル名を入力して保存します。
*現在Selenium2ではJAVAとPaython以外はサポートされていません。
https://github.com/sebuilder/se-builder/wiki/Supported-Languages-and-Frameworks
2-5. ファイルからテストスイート追加
1. “Suite”をクリックします。
2. “Add script from file”をクリックし、追加したいテストが記述されたファイ
ル(html,json)を選択します。
3. “Suite”内に選択したテストのタイトルが追加されます。
*Selenium1はhtml,Selenium2はjsonファイルで保存されたテストスイートをそ
れぞれ読み込むことが出来ます。
3.SeleniumとPHPUnit
❏ pearでインストール
$ sudo pear install phpunit/PHPUnit_Selenium
❏ composer
composer.jsonに以下を記述
“require” {
"phpunit/phpunit-selenium": "1.*"
}
● PHPUnit_Extensions_Selenium2TestCase テストケースは、 WebDriver API を利用します。
● PHPUnit_Extensions_SeleniumTestCase は、Selenium Server と通信するための クライアン
ト/サーバ プロトコルを実装したものです。
3-1. PHPUnit_Seleniumのインストール
3-2. Selenium BuilderからPHPUnit用テス
トケース作成
1. Selenium1でテストケースを作成します。
2. File->ExportでPHPを選択します。
3. 保存する場所を指定し、ファイル名を入力して保存します。
4. Selenium Serverを起動します。
$ java -jar selenium-server-standalone-2.37.0.jar
5. PHPUnitで保存したテストを実行します。
$ phpunit ***Test.php
*Selenium2は対応していないため、Selenium1でのPHPUnitテストケースの作
成です。
<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
//Selenium Serverが使用するブラウザを指定
$this->setBrowser("*chrome");
//テストするベースURLを指定
$this->setBrowserUrl("http://php_application_demo.com");
}
3-3. 作成されるPHPUnitコード ~Sample~
public function testMyTestCase()
{
//URLを開く
$this->open("/bootstrap/examples/signin/");
$this->waitForPageToLoad("60000");
try {
$this->assertEquals("", $this->getValue("css=input.form-control"));
} catch (PHPUnit_Framework_AssertionFailedError $e) {
array_push($this->verificationErrors, $e->toString());
}
}
}
?>
3-3. 作成されるPHPUnitコード ~Sample~
補足
● macにpearをインストール
$sudo php /usr/lib/php/install-pear-nozlib.phar
include_pathを修正
$sudo vi /etc/php.ini
include_path = ".:/usr/include/php/include:/usr/lib/php/pear"
● pearからPHPUnit をインストール
$sudo pear config-set auto_discover 1
$sudo pear install pear.phpunit.de/PHPUnit
● PHPUnitとSelenium
http://phpunit.de/manual/3.7/ja/selenium.html
● Selenium
http://blog.trident-qa.com/2013/05/so-many-seleniums/
http://www.atmarkit.co.jp/ait/articles/0908/19/news109.html
http://news.mynavi.jp/column/ide/157/
https://speakerdeck.com/suzuki/phpunit-plus-selenium2-first-step-guide
● Selenium Builder
http://uzulla.hateblo.jp/entry/2013/07/14/005635
https://github.com/sebuilder/se-builder/wiki
参考にしたサイト

Selenium勉強会

Editor's Notes

  • #4 動作確認した環境
  • #6  Seleniumを利用すると、Webアプリケーションのテストケースを作成しておけば、回帰テストはほぼ自動でできます。また、複数のWebブラウザでの試験も簡単にでき、Webアプリケーションのテストを効率化できます。  プロジェクトによっては、試験の証跡として画面キャプチャを要求されることがありますが、Seleniumを利用すれば自動的に画面キャプチャを取ることができ、仕様変更時に、「0からキャプチャを取り直す」という手間もなくなります(画面キャプチャの取得は、FirefoxとIEのみの機能)。
  • #7 SeleniumRC(Selenium 1) -> Selenium2 Selenium IDE -> Selenium Builderへ Selenium Builder ブラウザ操作の記録で簡単にテストケースが作成できる
  • #8 -role hub -> ローカル上でのphpunitでは不要
  • #10 Firefoxの親ウィンドウのURLがデフォルトで入力される
  • #11 ヴァーフィケーション
  • #12 ディスカード
  • #14  /Users/nishikioritatsunori/WorkSpace/selenium/twitterLoginTest.json facebookログインとかで実践するとか Launch ランチ
  • #19 http://phpunit.de/manual/3.7/ja/selenium.html