タグ別アーカイブ: E2Eテスト

帰ってきたSelenium IDEはフロントエンドE2Eテストが気軽にできるあのSelenium IDEだった

この記事は2017年11月21日に投稿した以下の記事の続きです。

Selenium IDEを失った僕たちはどこへ行くべきなのか (出題編)

 

この記事の公開後、Web Extensions形式で実装された新しいSelenium IDEが2017年12月11日に 晴れて ver 1.0 としてリリース、その後も実装とバグ修正が進み 2018年2月27日 には ver 1.0.3 がリリースされました。中身の形式は変わってもブラウザ拡張なので簡単に導入出来ます。

Releases · SeleniumHQ/selenium-ide

そして以下がその画面です(ver 1.0.3現在)

なじみが有る感じのUIですね。まだまだ開発は初期段階との事ですが、実際に使ってみた所「出来ているのはガワだけ」なんてことは無く、実際に今までのテストケースを微修正しつつE2Eテストに活用していけそうなクオリティが感じられました。動きます!

この画像の例では

  1. https://www.yahoo.co.jp の / を開き、
  2. 検索ボックスに「Wikipedia」とタイプ。
  3. 検索ボタンをクリックし結果を待つ。
  4. 検索結果画面の検索ボックスにも「Wikipedia」と入力されている事。

を確かめており、実際に動作します。要素のクリック(と結果待ち)、文字入力、文字列チェック、入力ボックスの値チェックなど動作するのでこれだけでおおむね動くと言っても良いのではないでしょうか。

細かい点としては以下のような状況を確認しています。

  • Google Chrome版とMozilla Firefox版が有るが、私の環境ではFirefox版が上手くテストが実行されない。Google Chrome版なら動く。
  • これまでのSelenium IDEで作ってきたテストケースをそのまま開く事が可能。ただし、複数のテストケースをまとめたシナリオ的なファイルは開けない模様。
  • Command「Open」と「Click」はそのまま動く。
  • Command「assert Text」での文字列チェックは * をサポートしないように見える。完全一致なら動作する。
  • Command「clickAndWati」は「click at」に置き換え。クリックした後はXHR処理を待つようになっているようで、画面遷移だけでなくモーダルウィンドウの表示なども待機OKです(「WaitForVisible」でモーダルの表示完了を待つといった処理が不要)。
  • Failed assertion commands do not abort the test case #89
    アサートに引っかかってもテストが継続するのは現状では仕様?
  • Issue handling " from old ide scripts #114
    例えば
    css=div.explanation-box > a
    のようなターゲット記述を読み込む際に、参照文字を置き換えずにそのまま読み込んでしまいます。自分で
    css=div.explanation-box > a
    のように編集すると動作します。

とまぁ、細かい所を見るとそれなりにツールとしてもシナリオとしても手を入れてあげる必要は有りますが、ここまで動くなら今後にも期待が持てますね。という事で、続きの記事を書いてみた次第ですので、あの簡単にE2Eテストが書けるSelenium IDEが忘れられない方は是非触ってみて、試して、出来ればフィードバックもして? 欲しいという記事でした。

とりあえず私自身ももうちょっと触ってみようと思います。


Selenium IDEを失った僕たちはどこへ行くべきなのか (出題編)

それなりに歴史も有るSelenium IDE。Firefox上のプラグインとして動作し、Webブラウザを自動操作、グラフィカルだったりそこそこAjaxが入っているサイトでも操作やアサート条件が設定できるE2Eテストツールです。個人的にはWebアプリケーションのテストはコア部分以外は(単体テストよりも)E2Eテストで実操作に近いシナリオで動かした方が良いのではと思っている所も有り、そこそこ使っています。

しかし、そのSelenium IDEも実質終了してしまいました。Firefoxが旧来のプラグインに対応しなくなり、かろうじて旧プラグインが利用できているFirefox ESR(長期サポート)版も来年には次のバージョンが来てしまいます。

まだまだ使うぞSelenium IDE
https://qiita.com/hiroshitoda/items/f01cf25fd972f03c24ed

[2017年時点] Selenium IDE のまとめ
https://qiita.com/gluelan2013/items/daa8680e8e86c0937743

本家SleniumだったりWeb Driverだったりに行くべきなのか

Firefox ESR版が使える今であれば各種のプログラミング言語向けにエクスポートし、SleniumだったりWeb Driverだったりで動くものに乗り換えるべきかもしれません。Phantom JSとかKapybaraとかその辺も関係してくるのかもしれません。いかんせん実際に使った事が無いので、いちから調べる必要が有ります。今まで以上に自動化を進める(継続的インテグレーションへの組み込み)人向けのようにも感じ、GUIでぽちぽちするだけでテスト出来ていたソリューションを置き換える物としては「同じ事は出来るけど別の層向け」という印象が有ります。

SideeX(Web Extensions版のSelenium IDE)

URL: https://github.com/SeleniumHQ/selenium-ide

一応公式?なんでしょうか。Web Extensions版のSelenium IDEと言えるものです。ただ、頻繁に使っていたClickAndWaitが無かったりと、テストケースファイルの互換性に関しては何とも言えないものになっています。今後今までのシナリオと同等の物が作れるようになるんだろうか……?。実際に試してみたものの、全体的にベータ版感が有ります。

Katalon Recorder

URL: https://www.katalon.com/resources-center/blog/katalon-automation-recorder/

エクスポート機能も有り、仕様上はSideeXよりも高機能なエクステンションです。実際に試してみましたが、Chrome版だとページ内の文字列を取るバリデーションで動作が止まったり、Firefox版だと実行ボタンを押しても1ステップも動かずと、こちらも上手く動かず。UIはそれなりに完成度が高そうな感じなんですが……。ただ、他のツールとも連携するソリューションを目指しているようで、ツール開発の今後に期待が持てます。

正解がない

別物である事を受け入れたうえで、CUIやCI上のテストツールから実行するソリューションに行くのがおそらくもっとも無難。新しいものを知る事は勉強にもなる。ただ、SideeXやKatalon Recorderが今後便利に使えるようになるのかもしれない、という気持ちも捨てきれず。期待するなら開発に協力しろと言うのも有りますが(SideeXはOSS)そういった余力もなく。自分で作らずに無いものに対して「無い!」と駄々をこねるのも仕方が無いので、今後もFirefox ESRに残された期間で検討していきたいと思います。

─2018年03月06日 続きを書きました。
https://www.sodo-shed.com/archives/12350