Seleniumによるテスト結果の判定方法について

1,541 views
Skip to first unread message

jieun kim

unread,
Apr 5, 2017, 5:57:45 AM4/5/17
to 日本Seleniumユーザーコミュニティ
はじめまして、金と申します。
テスト自動化を計画している段階で、Selenium 3を評価しております。
かなり初心者レベルの質問になりますが、よろしくお願いいたします。

早速ですが、主に下記2つの結果を判定したいと思っております。
・スタイルの適用 ⇒ スクリーンショット
・値取得もしくはログ(Console)の取得 ⇒ ??

ところで、いくつか質問させてください。
①スクリーンショットを取る範囲を設定するには、何か方法がありますでしょうか?
 簡単に指定できるものでしょうか?
②スクリーンショットを比較するには、どのような実装方法がありますでしょうか?
 取得した画像ファイルの特定部分だけを比較するなども考慮したいと思います。
③取得値やログに関して判定するには、どのような実装方法がありますでしょうか?
 結果値の保存に関しては、File I/Oなどを利用して別途実装するのが一般的ですか?

大変お手数ですが、よろしくお願いいたします。

伊藤望

unread,
Apr 9, 2017, 10:36:42 AM4/9/17
to 日本Seleniumユーザーコミュニティ
金さん

初めまして。伊藤です。

> ①スクリーンショットを取る範囲を設定するには、何か方法がありますでしょうか?
seleniumの画面キャプチャロジックだと、あまり簡単な方法は無いと思います。
スクリーンショットを取った上で、必要な範囲だけをさらに切り取る処理を自分で行う必要があります。
たとえば特定の要素の領域だけを切り取りたい、などでしたら、WebDriverのelementのgetSizeやgetLocationメソッド
などで取得した領域を画像から切り取る、という方法が考えられます。


> ②スクリーンショットを比較するには、どのような実装方法がありますでしょうか?
ImageMagic ( http://unokun.hatenablog.jp/entry/2015/09/20/191425 )などのSelenium以外とのライブラリと組み合わせる必要があります。
あとは、https://applitools.com/のようなクラウドサービスを使うと、
スクリーンショットの比較、ブラウザ上でのチェックなどがより簡単に行えます。 
最近では画像比較によるテストには「Visual Testing」という名前がついているようで、
検索するといくつかヒットすると思います。
範囲指定の方法は、これらのライブラリ・サービスで何か良い方法が提供されているかもしれませんし、
単に①の方法で指定範囲だけを切り取って全体比較するという手法もあるように思います。
あと、画像比較は、画面デザイン変更の影響を非常に受けやすいので、
多用しすぎるとテストのメンテナンスが辛くなると思うのでご注意ください!


> ③取得値やログに関して判定するには、どのような実装方法がありますでしょうか?
具体的に何を指しているでしょうか?
テスト実行ログなどであれば、Jenkinsや各種クラウドCIツールでテストを実行すれば、
実行ログは簡単に保存できます。それが一般的と思います。
ダウンロードしたファイルの保存など何がしかのファイルをテスト結果に関連づけて保存したい場合も、
JenkinsならArtifactの保存などの方法で保存できると思います。クラウドCIツールだとちょっと辛いかもしれません。
それ以外に、特定のディレクトリにファイルを残しておきたいとか、ファイルの内容を正解データと比較判定したいだとかですと、
自前でロジックを書くしか無い気がします。

jieun kim

unread,
Apr 9, 2017, 9:05:22 PM4/9/17
to 日本Seleniumユーザーコミュニティ
伊藤さん

金です。
詳細なご説明ありがとうございます。
大変参考になりました。

質問させていただいたテスト結果の判定に対しては、
Seleniumを基に他の組み合わせが必要で、
そのキーワードになるものについて分かるようになりました。

引き続き、よろしくお願いいたします。


2017年4月9日日曜日 23時36分42秒 UTC+9 伊藤望:
Reply all
Reply to author
Forward
0 new messages