pageobjects与传统测试的使用场景主要有以下几个方面:
1.面向对象的设计模式
PageObjects
使用面向对象的设计模式,将测试代码和被测试页面的页面元素及其操作方法进行分离,以此降低页面元素变化对测试代码的影响。每一个测试页面都会被单独定义一个类,类中会定位所有需要参与测试的页面元素对象,并且定义操作每一个页面元素对象的方法。
2.适应UI频繁变化
传统UI自动化测试在面对UI频繁变化时,测试用例也要跟着变化,这会导致测试用例的维护变得困难。而PageObjects设计模式让自动化脚本井然有序,将页面单独维护并封装细节,可以使测试用例更稳健,不需要太多改动。当页面元素id或者位置变化时,只需要更改测试页Class中页面的属性即可。
3.提高测试用例的可读性和可维护性
PageObjects
的主要优势在于降低UI变化导致的测试用例脆弱性问题,让用例清晰明朗,与具体实现无关。此外,它还减少了重复findclick样板代码,提高了测试用例的可读性,同时也提高了测试用例的可维护性。
4.针对复杂UI的层次结构
对于那些复杂UI的层次结构,如果它们只是用来组织UI,那么它们不应该出现在PageObject中。相反,应该只为页面中重要的元素创建PageObject类。这样做可以使测试代码更加简洁和易于理解。
5.避免重复代码
PageObjects
是你的testcode的交互对象,是对实际UI的一种抽象模型化。通过PageObjects可以减少重复代码的编写,例如,很多页面都有同样的header,
footer,navigator等部分,如果对这些进行抽象,只写一次就可以在其他地方通用了。
总的来说,PageObjects
设计模式适用于需要进行UI自动化测试的场景,特别是在UI频繁变化的情况下,它可以大大提高测试代码的可维护性。同时,它还能帮助避免重复代码的编写,使测试代码更加简洁和易于理解。