英文名:Page Object Model 简称:POM
中文别称:页面对象模型
任何长期可维护的Ui功能自动化项目必须使用的设计模式之一,它解决了查找控件与操作操作的大量代码重复的问题,消除了重复代码的项目,才是真正可靠的项目。
POM解决问题
1、解决查找控件的代码重复编写问题
整个项目中,用于查找某个页面中的某个控件的代码,只有1处定义!
2、解决操作控件的代码重复编写问题
整个项目中,操作某个页面的某个控件的代码,只有1处定义!
POM核心思想
1、页面类产生的对象表示一个页面
想一想某个App的页面有哪些功能?
2、页面类产生的对象表示一个窗口
想一想某个App弹出来的一个窗口有哪些功能?
3、页面类产生的对象表示一个对话框
想一想一个弹窗上,有哪些功能?
4、页面类产生的对象表示页面中任意的某一部分
想一想一个页面,某一部分有哪些功能?
POM带来的好处
1、项目可维护,被测产品的Ui改变了,你只需要修改一处页面类中对应的查找控件、操作控件的代码,测试用例的代码几乎不用动……除非因为需求,控件都没了……
2、更方便你去封装测试用例中的复合操作到一个对象中
3、在测试用例代码中方便使用调用链模式,POM是重要的一个前提
4、测试用例编写过程,以页面的API为联想范围,不会超出页面提供的交互功能
5、每个页面或者某一部分具备什么样的功能,可以快速获知某个页面具备哪些交互能力
6、测试用例中的链式调用+POM的代码可读性非常好,不使用Page Object的代码真的太难读了
参考文章
Android之UiAutomator测试框架源码分析(第二十七篇:用微信App解释Page Object Mode设计模式,简称POM模式)