今回は自動化導入できないページについて私の経験をもとにチェック項目っぽく箇条書きを作成しました!
できない理由も細かく説明しますので自動化導入検討前にそのサービスは自動化を適用できるのか確認してみてください!
自動化に不適合な条件一覧
私が自動化適用する際にぶち当たった問題で印象に残っているものを簡潔に
4つのチェック項目としてお伝えします。
それ以外は思いつかなかったので今のところ何とか自動化できていると思います。
- ロボット判定するページが含まれているページ
- HTML内に描画されているページ(動画やmap)
- 画像が正しく表示されているかの検査をしなくてはいけないもの
- 座標を使用してのマウス操作を確認しないといけないもの
過去に私が経験した自動化不向きと判断した要素となります。
それでは次からひとつずつ説明していきます。
自動化できない4つの項目の理由
前項で上げた4つのポイントがなぜ自動化できないのか詳しくご説明します。
ロボット判定するページが含まれているページ
ロボットやスクリプトの攻撃を受けないようにするためのセキュリティとして導入しているページは自動化には向いていません!
Seleniumもロボットの扱いなのでどんだけ頑張っても突破することはできないようになっています。
このようなページが対象です
代表的な例としては、
こんな奴のチェックボックスを入れるものや
文字を入力するものなどです。
ワンタイムパスワードであれば対応可能です
ただ、このセキュリティ対策と同列になっているので勘違いしてしまうかもしれませんが
ログイン時にワンタイムパスワードを発行してログインするものに関しては
手順は複雑になってしまいますが自動化可能です。
ワンタイムパスワード発行
↓
発行されたメール・SMSを開く(androidについてはappiumを使用)
↓
対象の文字列を変数に入れてログインページに打ち込む
これで対処可能です。
HTML内に描画されているページ(動画やmap)
描画されているページに関しては中の要素が取れないので操作が難しいのと、
仮にスクリプト内の機能を使用して座標によるクリック動作ができたとしても、
正しく表示・操作ができていることの判別が難しく、よくシナリオ途中でエラーを出してしまいます。
代表的な例としてはGoogleマップ
こちらのように地図上の文字列が取れるかと思いきやすべて描写状態なので、
例えば東京駅をクリックしてピンを立てるなどの操作は画面全体が要素となってしまうので
特定が難しいです。
ただし、検索ボックスなど地図で描写している以外の箇所に関しては多少操作できるものもありますので条件によっては回避することも可能です。
YouTubeも難しいです
合わせて動画などが正しく再生できているかの確認も難しいです
表示部分を選択できても中身の確認まではできません。
検査するときに例えばですが
〇:「対象のページに遷移すること」:タイトルなどを確認することで担保できる
×:「動画がかくつかないこと」や「ブラックアウトしないこと」:動画の状態は把握できないので担保できない
などの自動化部分の切り分けが必要となってきます。
画像が正しく表示されているかの検査をしなくてはいけないもの
Youtubeと被るところがありますがSelenium自体に画像確認の機能はなく、
単体では検査することができません。
ほかの画像認識ソフトと合わせることで検査は可能ですが
相当な工数が必要となってしまいますし、各PCの解像度によってもエラーが出てくるので考慮しないといけないことが多いので作成工数に対しての得られる自動化削減工数は低くなってしまいます。
見切れなどを確認するもの
いい例がなかったので私のブログトップにある画像ですがこれも本来のサイズとは違い上下で見切れが発生しています。
ただそれがちゃんと表示できているかの確認をすることは困難となります。
座標を使用してのマウス操作を確認しないといけないもの
マウスの操作はスクリプトと併用したりseleniumの機能を使用すると実現可能ですが
実際に操作(軌道)を確認することは難しいです。
描画ソフトを使用したときにちゃんと引けているかの確認
例えばこのような描画するアプリの確認をしたいときにマウス操作ができていることなどが確認できないものとなります。
最後に
一番最初のロボット確認以外は操作自体は可能なので、
その時の対処法としてスクリーンショットを使用して後ほど確認するという手段をとっておりました。
Webの表示検証を行う際に試験書をそのまま自動化させようとしても上記の件以外でも障害がありうまくはいきません。
自動化用の確認項目を実装して手動試験と見比べて項目を削るとうまく自動化運用ができるかもしれません。
ぜひ参考にしてみてください!
コメント