LoginSignup
0
2

More than 5 years have passed since last update.

RemoteWebDriverでステップ実行やタブオープンや便利機能を提供するChromeDriverTrait

Posted at

ChromeDriverTrait

Facebook\WebDriver\Remote\RemoteWebDriver
によるブラウザテストをより便利にするクラスです。
RemoteWebDriverの基本的な使い方は、下記を参照ください。
http://qiita.com/zaburo/items/f11357170953a3c34b8f
https://facebook.github.io/php-webdriver/1.2.0/Facebook/WebDriver.html

主な機能

  • 各テストをChromeのタブとして実行します
  • 各テストの結果レポートをhtmlで書き出します
  • 各テストのスクリーンショットをとります。縦に長いページも簡易的にスクロールして全画面取得します
  • テストをステップ実行する機能があります
  • テストを◯マイクロ秒止める機能があります

実行サンプル

サンプルを実行してみてください。

phpunit --colors path/to/tests/SampleTest.php

この結果、3つのブラウザテストが3つのChromeタブで実行され、その結果が4番目のタブにHTMLの形で出力されます。

ディレクトリ構成

etc/  
    debug.log   ...    
    debug.php   ...このファイルを編集することで、ブラウザテストをステップ実行できます。
    debug.sample.php  ...上記ファイルのサンプルです。
templates/  
    template.php  ...レポートはこの形式で生成されます。
temporary/  ...ファイルが書き出されます。定期的に削除してください。
tests/  
    SampleTest.php  ...テストのサンプルです
traits/  
    ChromeDriverTrait.php  ...テストを便利にするトレイトです
composer.json  
README.md  

特殊機能の使い方

ステップ実行機能

テストメソッド中に、

$this->debug();

と記述すると、その場でテストが待機状態になります。
このとき、etc/debug.php(debug.sample.phpをコピーしてください)を編集して保存すると、その中身が実行されます。
これにより、ブラウザテスト動作をステップ実行して実験することができます。

テストの時間待機機能

時間指定の待機は推奨されませんが、やはり便利です。このように記述できます。

//1.5秒待機
$this->driver->wait(100, 100)->until(self::sleep(1500));
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2