RSS/SEO/Google/マッシュアップ/ちょっとした豆知識/エンタメ系など
fkoji.com > F.Ko-Jiの「一秒後は未来」 > SeleniumのテストをPHPで楽に書く
2006 10 24

SeleniumのテストをPHPで楽に書く

スポンサード リンク

Seleniumのテストは次のようなテーブル要素を使って書く。

<tr>
  <td>open</td>
  <td>index.html</td>
  <td></td>
</tr>
<tr>
  <td>verifyText</td>
  <td>id=title1</td>
  <td>タイトル1</td>
</tr>
<tr>
  <td>verifyText</td>
  <td>id=title2</td>
  <td>タイトル2</td>
</tr>
<tr>
  <td>verifyText</td>
  <td>id=title3</td>
  <td>タイトル3</td>
</tr>
<tr>
  <td>clickAndWait</td>
  <td>submit</td>
  <td></td>
</tr>

これが面倒。テストが多くなってきたり長くなってきたりすると、テストを修正するメンテコストも高くなってしまう。そこで、この部分を例えばPHPで次のように書けるようにすると視認性が向上してかなり楽になる。

<?php
  $sw = new SeleniumWriter();
  $sw->open('index.html');
  $sw->verifyText('id=title1', 'タイトル1');
  $sw->verifyText('id=title2', 'タイトル2');
  $sw->verifyText('id=title3', 'タイトル3');
  $sw->clickAndWait('submit');
?>

SeleniumWriterクラスは、単純にテーブル要素を書き出してくれればよい。このクラスは例えば次のようになる。

<?php
class SeleniumWriter {
  public function __construct(){}
  public function __call($name, $params) {
    $params = array_merge((array)$name, $params);
    call_user_func_array(array($this, 'writeTest'), $params);
  }
  protected function writeTest($func, $arg1 = "", $arg2 = "") {
    echo "<tr><td>${func}</td><td>${arg1}</td><td>${arg2}</td></tr>";
  }
}
?>

このクラスを元に独自のメソッドを加えたりして拡張すると便利だ。JavaScriptで同じようなオブジェクトを作ろうとしたけどちょっとうまくいかなかった。

はてなブックマーク数 livedoor クリップ Buzzurl

English version

「SeleniumのテストをPHPで楽に書く」を携帯で読む

前のエントリー: « Yahoo!でのインデックス数がGoogleの3分の1以下
次のエントリー: あなたの電池パック、膨れていませんか? »

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(承認されるまでコメントは表示されません。)




このブログをRSSリーダーで簡単購読
Subscribe with livedoor Reader Add to Google My Yahoo!に追加 Subscribe with Fastladder Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録

タイトル:

URL:

リンク用HTMLタグ:

powered by Google Chart API

梅酒コミュニティサイト

梅酒.in

スポンサー

なんかいろいろ

このブログの読者はこんなブログも読んでます。
あわせて読みたい

はてなブックマークカウンター

track feed

フィードメーター - F.Ko-Jiの「一秒後は未来」

スカウター : F.Ko-Jiの「一秒後は未来」








携帯からのアクセスは

QRコード
http://mob.fkoji.com/