ページオブジェクトパターンをざっくり言うと?
ページオブジェクトパターン【Page Object Model (POM) とも言う】はテスト対象の画面テストをテスト自動化する際、画面というのは頻繁に変更が入り、自動テストも頻繁に修正が必要となる為、極力、自動テストをメンテナンスしやすいように作る、デザインパターン。
具体的には?
テスト対象の各画面情報を1画面につき、1つの共通クラスに集約し、画面構成の変更に伴うスクリプト修正コストを減らすことができます。
なぜメンテナンスしやすいのか?
- テストスクリプトが読みやすい
- ローケータの詳細などをページオブジェクトのメソッド内に書くことでテストスクリプトを読みやすくする
- 1つのページに1つのクラスを作成する。というルールが明確
- ルールが明確なので開発者ごとのバラつきがない
- メソッドが見つけやすい
- 操作対象のページに対するページオブジェクトから目的のメソッドを探せばよいので、見つけやすい
- 操作対象のページのUI上の操作と簡単にマッピングしやすい(例:ボタンをクリックした後にホームページに移動するメソッドの場合、「gotoHomePage()」にする、、とか)
サンプル
サンプルコードはググればいくらでもあるので、他サイトを参照
https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html
以上、3分で理解できたはず!?
参考記事
* [Page Object Model](https://docs.katalon.com/katalium-framework/docs/katalium-framework-page-object-model.html) * [Page Object Model (POM) & Page Factory: Selenium WebDriver Tutorial](https://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html) * [Selenium実践入門 ―― 自動化による継続的なブラウザテスト](https://www.amazon.co.jp/Selenium%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%AB%E3%82%88%E3%82%8B%E7%B6%99%E7%B6%9A%E7%9A%84%E3%81%AA%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%83%86%E3%82%B9%E3%83%88-WEB-PRESS-plus/dp/4774178942)余談。。。
3分で理解するシリーズ