phpとtravis ciでブラウザテスト

29
#phpstudy 2014/1/28 @yando PHPとTravis CI ブラウザテスト

Upload: yandod

Post on 31-May-2015

536 views

Category:

Software


1 download

TRANSCRIPT

Page 1: PHPとTravis CIでブラウザテスト

#phpstudy 2014/1/28 @yando

PHPとTravis CIでブラウザテスト

Page 2: PHPとTravis CIでブラウザテスト

yando

CandyCane / php CakePHP2 実践入門

Page 3: PHPとTravis CIでブラウザテスト

ピザ♥(昨年は約100枚)

Page 4: PHPとTravis CIでブラウザテスト
Page 5: PHPとTravis CIでブラウザテスト

CM: PaaSセミナー

Page 6: PHPとTravis CIでブラウザテスト

今日の話題

Selenium

Vagrant + Selenium

Travis CI + Selenium

Page 7: PHPとTravis CIでブラウザテスト

ブラウザによる自動テスト

IEを含む主要ブラウザに対応

Selenium IDEが有名 (簡単だし)

Selenium-WebDriver / Selenium RC

Selenium

Page 8: PHPとTravis CIでブラウザテスト

Selenium IDE

Page 9: PHPとTravis CIでブラウザテスト

IDEの問題

IDEはテスト結果の取得がいまいち

結果がHTML

文字列的に中身を見て成否が分かる

Page 10: PHPとTravis CIでブラウザテスト

yandod/travis-ci-selenium-php

Page 11: PHPとTravis CIでブラウザテスト

これは厳しい

Page 12: PHPとTravis CIでブラウザテスト

RC / WebDriver

PHPUnitなどからコントロール

Selenium RC = Selenium 1

Selenium Web Driver = Selenium 2

互換性はあるけど今ならWebDriver

Page 13: PHPとTravis CIでブラウザテスト

コード例(PHPUnit)

Page 14: PHPとTravis CIでブラウザテスト

実行例(PHPUnit)

Page 15: PHPとTravis CIでブラウザテスト

これで

PHPUnitだからCIに乗せやすい

ただし実行環境にいろいろ必要

PHP, Webサーバ、java、ブラウザ

セットアップが面倒←ここまでが去年

Page 16: PHPとTravis CIでブラウザテスト

Vagrant + Selenium

Page 17: PHPとTravis CIでブラウザテスト

去年、あっという間に標準に

開発環境設定を自動化

ここにSeleniumを突っ込もう!

Vagrant

Page 18: PHPとTravis CIでブラウザテスト

残念なレシピ

Page 19: PHPとTravis CIでブラウザテスト

Oh…

Page 20: PHPとTravis CIでブラウザテスト

無いから書く

XVfb - 仮想デスクトップ

firefox (phantomjsはやっぱ中途半端)

java + Selenium

レシピを書いた

Page 21: PHPとTravis CIでブラウザテスト

yandod/selenium-grid

Page 22: PHPとTravis CIでブラウザテスト

使い方

Berksfile からインポート

yandod/candycane を見てください

Page 23: PHPとTravis CIでブラウザテスト

Travis CI+ Selenium

Page 24: PHPとTravis CIでブラウザテスト

Webで提供されるCI

CI環境にはfirefoxなどが導入済み

実は .travis.yml に設定を書くだけ!

使わないともったいない!

Travis CI

Page 25: PHPとTravis CIでブラウザテスト
Page 26: PHPとTravis CIでブラウザテスト
Page 27: PHPとTravis CIでブラウザテスト

インストーラーの自動テスト

基本的なフローや会員登録もやりたい

重要な部分だけでもカバー

Sauce LabならIEもテストできる

達成

Page 28: PHPとTravis CIでブラウザテスト

iOS / Androidなども対応されている

何度も繰り返す手作業を自動化!

ローカル環境もVagrantで手に入る!

Engine Yardを使おう!(宣伝)

未来

Page 29: PHPとTravis CIでブラウザテスト

ebook配布中!

URLはステッカーに!!