PHPer のための (不遇に負けない) Selenium 入門 2015年10月19日 戸田広
PHPerのための (不遇に負けない)Selenium入門 2015年10月19日 戸田広
自己紹介
• 戸田 広(とだ ひろし) @hiroshitoda • 1979年生まれ 36歳 • ここ2年くらいは JavaとJavaScriptばかりでしたが、 最近またたまにPHPも書いてます。 • でも相変わらずPHPは5.2くらいで止まってます。 Composerっておいしいの?
俺とCodeIgniter いろいろありました。
俺とFuelPHP 特にありません。
今日話すこと
※CodeIgniterの話はしません。 1. ブラウザ自動操作フレームワーク「Selenium」の紹介 2. Selenium IDEと不遇のPHP 3. Selenium WebDriverと不遇のPHP
ブラウザ自動操作フレームワーク 「Selenium」の紹介
ブラウザ自動操作フレームワーク「Selenium」の紹介
• Seleniumとは • Webブラウザーやスマートフォンアプリを リモート操作するライブラリー
• 旧バージョンと新バージョンが それぞれに使われていますが、 徐々に新バージョンに移行しています。
• Selenium RC • バージョン1 • GUIツール「Selenium IDE」はこちらがベースです。
• Selenium WebDriver • バージョン2 • W3Cで標準化されています。 http://www.w3.org/TR/webdriver/ • スマートフォン向けの拡張「Appium」があります。
ブラウザ自動操作フレームワーク「Selenium」の紹介
• プログラムの単体テストではなく、 ユーザー操作テストの自動化をねらえるものです。 • 様々な言語向けの実装が作られていますので、 皆さんやりましょう!!!! • Java • Ruby • C# • Python • JavaScript • PHP • Perl • Objective-‐C
• しかしながら、言語によっては だいぶ不遇な感じなのです…
Selenium IDEと 不遇のPHP
Selenium IDEと不遇のPHP
• デモやります! • 操作記録・再生 • アサーション
• Selenium IDEは、Firefoxのプラグインです。
• コマンドは独自ですが、 一般的なプログラミング言語のフォーマッターで エクスポートできます。
Selenium IDEと不遇のPHP
• _人人人人人人人人人人人人人人人人_> 不遇とは <> 才能を持ちながらも <> めぐりあわせが悪くて <> 世間に認められないことである < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
Selenium IDEと不遇のPHP
Selenium IDEと不遇のPHP
• PHPフォーマッターの公式対応は ずいぶん前に滅亡しました!! 不遇!!!!
• Mozillaで配布されているプラグインは 旧バージョンのSelenium RC向けの エクスポートのみ対応です!! • https://addons.mozilla.org/ja/firefox/addon/selenium-‐ide-‐php-‐formatters/ • 今から使うものでは無いです。
Selenium IDEと不遇のPHP
• Selenium WebDriver向けの エクスポートプラグインを作っている方がいます。 • https://github.com/suzuki/PHP-‐Formatter-‐PHPUnit_Selenium2
• やさしい世界
Selenium WebDriverと 不遇のPHP
Selenium WebDriverと不遇のPHP
• デモやります! • まずJavaを入れます • 次にJarファイルを入れます • これはPHPer向けの手順です • Selenium WebDriver を使うために、 PHPUnit_Extensions_Selenium2TestCase でコードを書いてみます。
Selenium WebDriverと不遇のPHP
• _人人人人人人人人人人人人人人人人_> 不遇とは <> 才能を持ちながらも <> めぐりあわせが悪くて <> 世間に認められないことである < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
Selenium WebDriverと不遇のPHP
Selenium WebDriverと不遇のPHP
• 「実装しているのはその一部だけです」 • (゚ε゚)キニシナイ!! • 必要な部分はちゃんと実装されてるっぽいです。 • ちゃんとチェックしてませんが…
• 他言語でも、必ずしもすべてのWebDriver APIに 対応しているわけではないです。 • ちゃんとチェックしてませんが…
• Selenium WebDriver向けのAPIドキュメントが無い!! • サンプルコードを見てね!の文化圏 • https://github.com/giorgiosironi/phpunit-‐selenium/blob/master/Tests/Selenium2TestCaseTest.php
• がんばるしかないのか?
Selenium WebDriverと不遇のPHP
• PHP向けの実装は他にもあります! • Facebook謹製のphp-‐webdriver • https://github.com/facebook/php-‐webdriver • 他言語の実装とコードの書き方が近いので、 こちらの方がわかりやすいかも?
• ドキュメントが充実しています!
Selenium WebDriverと不遇のPHP
• 不遇をざっくり乗り越えるために、 Seleniumのラッパーを活用するのも良いでしょう。
• CodeceptionのAcceptance Testは、 中身がSelenium WebDriverです。 • http://codeception.com/ • なんだか良い感じのテストコードになります。
ご静聴 ありがとうございました。