m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Behat3のテストをphantomjsを使用して実行

phantomjs

PhantomJS | PhantomJS
ブラウザを開かないでのテストを行える。firefoxなどのブラウザがなくても良いのでCUIベースのVMでも動くかもしれない
今回は試さない

インストール
$ brew install phantomjs

macの場合はこれでおk

テスト環境

behat,yml
default:
  suites:
    default:
      path: %paths.base%/features
      contexts: [FeatureContext]

  extensions:
    Behat\MinkExtension:
      browser_name: ghost
      base_url: http://google.co.jp/
      sessions:
        default:
          selenium2:
            wd_host: "http://localhost:8643/wd/hub"
features/browser.feature
# language: ja
フィーチャ: Seleniumテスト
  @javascript
  シナリオ: Google参照して検索
    前提 ホームページを表示している
      かつ 5 秒待つ
    もし "q" フィールドに "php" と入力する
      かつ "btnG" ボタンをクリックする
      かつ 5 秒待つ
    ならば検索結果を表示していること

※ボタンは"btnG"になった

起動

phantomjs
$ phantomjs --webdriver=8643
[INFO  - 2015-11-22T12:09:30.139Z] GhostDriver - Main - running on port 8643
behat3
$ vendor/bin/behat
フィーチャ: Seleniumテスト

  @javascript
  シナリオ: Google参照して検索          # features/browser.feature:4
    前提 ホームページを表示している          # FeatureContext::iAmOnHomepage()
    かつ 5 秒待つ                  # FeatureContext::miaoDaiTu()
    もし "q" フィールドに "php" と入力する # FeatureContext::fillField()
    かつ "btnG" ボタンをクリックする      # FeatureContext::pressButton()
    かつ 5 秒待つ                  # FeatureContext::miaoDaiTu()
    ならば 検索結果を表示していること         # FeatureContext::jianSuoJieGuoWobiaoShiSiteirukoto()

1 scenario (1 passed)
6 steps (6 passed)
0m13.27s (12.15Mb)
$

こんな感じ

所感

画面がfirefoxとかchromeでないとマズイ場合はできないけど、一通りの流れを行ってデータの流れを追いたい場合はこちらのほうが楽かもしれない。
chromeとかで起動できていないのでその方法も探したほうがよいかもしれない。
IEなどで動かすのはまあどうでもいいや