Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LaravelアプリケーションをSeleniumでテストしてみた

3,671 views

Published on

2015.06.12 Laravel Meetup Tokyo Vol.6

Published in: Technology
  • Be the first to comment

  • Be the first to like this

LaravelアプリケーションをSeleniumでテストしてみた

  1. 1. Copyright © 2015 Yuta Ohashi All Rights Reserved. Laravelアプリケーションを Seleniumでテストしてみた Laravel Meetup Tokyo vol.6 2015.06.12 Yuta Ohashi
  2. 2. 2Copyright © 2014 rocros All Rights Reserved. Selenium?
  3. 3. 3Copyright © 2014 rocros All Rights Reserved. Seleniumっていろいろある? Selenium RC Selenium IDE Selenium WebDriver …etc
  4. 4. 4Copyright © 2014 rocros All Rights Reserved. Seleniumっていろいろある? Selenium RC Selenium IDE Selenium WebDriver …etc
  5. 5. 5Copyright © 2014 rocros All Rights Reserved. サンプルデモ
  6. 6. 6Copyright © 2014 rocros All Rights Reserved. https://github.com/blue-goheimochi/laravel-selenium-server
  7. 7. 7Copyright © 2014 rocros All Rights Reserved. やったこと
  8. 8. 8Copyright © 2014 rocros All Rights Reserved. やったこと PHPUnit経由でSelenium Serverから FireFoxを実行しブラウザテスト • PHPUnitを実行 ↓ • Selenium Server から FireFox 起動 ↓ • Laravelアプリケーションにアクセス ↓ • 結果を表示
  9. 9. 9Copyright © 2014 rocros All Rights Reserved. やったこと詳細 composer.jsonの修正 テストの作成 サーバー環境構築
  10. 10. 10Copyright © 2014 rocros All Rights Reserved. composer.jsonの修正 "require-dev": { "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1“, "phpunit/phpunit-selenium": ">=1.3.1“ }, “phpunit/phpunit-selenium”: “>=1.3.1“ を追加。
  11. 11. 11Copyright © 2014 rocros All Rights Reserved. テストの作成 <?php class ExampleSeleniumTest extends PHPUnit_Extensions_Selenium2TestCase { public $captureSSPath = "/vagrant/src"; protected function setUp() { $this->setBrowser('firefox'); $this->setBrowserUrl('http://192.168.33.6/'); } public function testShowTopPage() { $this->url("/"); $this->writeScreenShot( 'top' ); } public function writeScreenShot( $imgName ) ・・・・・・・・・続く PHPUnit_Extensions_Selenium2TestCaseを継承した テストを作成
  12. 12. 12Copyright © 2014 rocros All Rights Reserved. サーバー環境構築 必要なものをインストール&実行 • FireFox • Xvfb • Selenium Server
  13. 13. 13Copyright © 2014 rocros All Rights Reserved. PHPUnitを実行!
  14. 14. 14Copyright © 2014 rocros All Rights Reserved. 実行結果 top.jpg
  15. 15. 15Copyright © 2014 rocros All Rights Reserved. できること Seleniumを使ったテストでできること • DOMで呼び出し(id,class,xpath)してブラウザテスト • テストデータとかjsonとかで読み込んで使う • (エラー時に)スクリーンショット撮れる などなど・・・ 実は自分はテストデータ作成とかで使っている。。 Laravelはぶっちゃけ関係ない・・・
  16. 16. 16Copyright © 2014 rocros All Rights Reserved. Laravelはぶっちゃけ関係ない・・・ <?php class ExampleSeleniumTest extends PHPUnit_Extensions_Selenium2TestCase { public $captureSSPath = "/vagrant/src"; protected function setUp() { $this->setBrowser('firefox'); $this->setBrowserUrl('http://192.168.33.6/'); } public function testShowTopPage() { $this->url("/"); $this->writeScreenShot( 'top' ); } public function writeScreenShot( $imgName ) ・・・・・・・・・続く URLの指定を変えればテスト対象も替わる
  17. 17. 17Copyright © 2014 rocros All Rights Reserved. なので・・・ E2Eからテストをはじめてみてもよいかも! 既存のWebアプリケーションあるけどUnitテストそろえるのつらいな・・・ とかそういう状況であればSeleniumを使ったE2Eのテストからはじめてみるのも いいのかなぁ・・・ とか思っていて、実際にそういう方向から個人的には攻めたりもしています。
  18. 18. 18Copyright © 2014 rocros All Rights Reserved. ご静聴ありがとうございました

×