[2016年時点] Selenium IDE のまとめ (インストールから応用まで)

  • 40
    いいね
  • 3
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

「SeleniumIDE」で検索するといろいろな知見が見つかりますが、現時点で有効な情報を自分の整理も含めて、まとめてみます。

お約束

このツールは FireFoxのプラグインです。用途は、ブラウザ操作によるテスト自動化ですが、ブラウザで行う定型作業であれば、手動操作の代替化が可能です。

手動操作の代替化

たとえば Googleスプレッドシートなどには GASなどのスクリプトがありますが、JavaScriptの知識が必要となりますが SeleniumIDEであれば自動記録ができるのでそういった知識は一切不要です。

テスト自動化

なお、テスト自動化を進めていくには以下の見極めが必要です

  • 何ができるのか
  • 何ができないか
  • 何を自動化したほうがよいか
  • 何を手動でやった方がよいのか

この辺りを見極めるに「とっかかり」としての導入に真価を発揮すると思います。

関連書籍 Selenium実践入門
関連書籍 システムテスト自動化 標準ガイド
これらの書籍が手元にあると先々の指針になると思います。

インストール

2016/05/30 時点での最新バージョンは 2.9.1 になります。
リリースノートでは、2.9.0 ですが、2.9.1はMozillaのデジタル署名が付与されたものになります。)

インストールにはFireFox Addonの公式からインストールとなります。

こちらに詳しく書かれています
Seleniumの薄っすい話6:俺と最近のSelenium IDE (@hiroshitoda さん)

公式からの導線は 公式ダウンロードサイト真ん中あたりにあります(かつてはページのトップにリンクがあったんですが・・・)

注意点!!
FireFoxのバージョンアップ(2016 年 の Firefox のリリースサイクルに関するアップデート)には注意が必要です。FireFoxの内部で動くAdd-on のため対応したバージョンとずれるとスクリプトが動かなくなる場合があります。動かなくなった場合はバージョンを戻して動作を確認してみましょう。

基本操作

SeleniumIDEをブラウザメニューから呼び出したのち、記録ボタン(パネル上の赤丸)を押して目的のサイトでテキスト入力、ボタンの押下、リンクのクリックなどを行えば、スクリプトとして記録されていきます。
この辺りは、SeleniumIDEの根幹機能なので、どのサイトに載っている情報も変わりありません。

FireFox上で実行するため、FireFoxのアドオンである firemobilesimulator と組み合わせるとコンベタンのテストも可能です(まだ需要があるかは疑問ですが・・・)

プラグインについて

公式のページにも SeleniumIDEの機能を拡張するプラグインが列挙されています。使い始めてみると、「これがしたい!」ということが出てくるので、探してみるとかゆいところに手をとどかしてくれるものがあったりします。

2013年の記事ですが説明されているのがこちら
Selenium IDE おすすめプラグインまとめ (外部リンク)

Selblock

SeleniumIDEのプラグインで有名(?)なのがこれ。
標準コマンドにない ループや、条件分岐などが可能になるほか、外部ファイルからデータを読み込ますことが可能になるため下記の記事あるような DDTが可能になります。

SeleniumIDE×SelBlocksを使ってXMLでDDT! (@____rina____ さん)

拡張されるコマンドについては公式のドキュメントで確認できます。

インストールは FireFox Add-onから行います。

Project ICKX Selenium-IDE User Extension

機能の豊富さであればこちらのプラグインも負けていません。

Project ICKX Selenium-IDE User Extension (外部リンク)

こちらは エレメントの取得、検証コマンドなどが拡張されています。

インストールは、サイトよりダウンロードした JavaScriptファイルを Selenium
IDEのオプションパネルより読み込ませます。公式の説明-日本語訳

注意点として、先のSelBlockと同時には使えないとのことです。

いろいろやってみたくなる

操作の自動記録、再実行が基本的な使い方になりますが、使っているといろいろとしたいことが増えてきます。

テストスクリプトの記述方法

標準コマンドには操作系だけではなく検証系のコマンドも用意されています。が、データの加工(たとえば、テスト実行時に反映される動的データに対応したい場合など)を行う場合などは getEvalコマンドを使用すれば JavaScriptで記述することができます。

Selenium IDE スニペット

また、下記ページは記事自体は古いのですが、大変役に立つ情報が記載されています
SeleniumでJavaScriptを使う方法いろいろ(変数・関数などの利用) (外部リンク)

実行方法

基本的な機能はあまり拡張されることもないですが、このところ(この数年?)追加されているいろいろな実行方法について。

スケジュール実行

SeleniumIDEパネルの右上に見える 時計アイコンから呼び出すことができるスケジュール実行機能です。ブラウザを起動した状態にしておく必要があることなど、いろいろと前提条件がありますが、使い方はアイディアしだいかな。

Selenium IDE2.9.0でタイマー機能が搭載!!で、使えるのか!? (@oh_rusty_nail さん)

クロスブラウザ実行

SeleniumIDEはFireFoxのプラグインなので、再実行もFireFoxで実行することになりますが、同操作をクロスブラウザ(IE,Chrome)で行う方法があります。

Selenium-Runnerによる実行

記録したテストスクリプト(Seleneseと呼びます)をコマンドラインから実行します。
この機能は Selenium1と呼ばれる SeleniumRC と同じ手順で実行するのですが、内部的なブラウザ操作方法が Selenium-Core方式ではなく WebDriver方式を使っています。

selenese-runner-java (外部リンク)
Selenese Runnerができるまで (外部リンク)

WebDriver Playback機能を使用

SeleniumIDEパネルのメニュー「オプション」-「設定」から「WebDriver」タブにある「Enable WebDriver Playback」をチェックし、テキストボックスに、使用したいブラウザを入力します

WebDriver Playback in Selenium IDE is Here  (外部リンク)

WebDriver形式にエクスポートして実行

記録したテストスクリプトを 他の言語に変換して実行する方法です。標準でエクスポートできる言語は下記があるので、テストツールに合わせて選択してください。(RCモードも残されていますが現時点では非推奨ですね)

  • C#
  • Java
  • Python2
  • Ruby

プラグインなどで拡張したコマンドや getEval等で記述した JavaScript部分は変換されないので変換後の言語で再度記述することになります。

エクスポートしたテストスクリプトの実行はエクスポート後の言語を使用したテスト実行方法になります。

これまで作成したテストスクリプトの移行にも使えますね。

おわりに

文頭にも書きましたが、SelneiumIDEは導入コストの低いツールですので、すぐに使い始めることができます。
が、テストスクリプトの管理などを考慮すると、ある程度の規模になったタイミングで次のステージに移行することが必須になると思います。長期的なスパンで使用するスクリプトなのか短期的なスクリプトなのかを判断して アドオンを使えばとても役に立つと思います。

文末にて

自筆記事以外にリンクを張らせていただいていますが、不都合等ありましたらお知らせください。すぐに対応いたします。