PageObjects与传统测试的结合方式主要有以下几个方面:
1.封装页面元素和功能
PageObjects模式是将待测页面(或者待测试对象)封装成一个类(Class),页面元素为Page类的成员元素,页面功能的实现放在Page类的方法里。这种方式可以减少冗余代码的编写,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。
2.分离元素定位与测试用例
PageObjects模式将页面元素定位和对元素的操作行为封装成一个page类,实现对页面对象和测试用例的分离。一条测试用例可能需要多个步骤操作元素,将每个步骤单独的封装成一个方法,在执行测试用例的时候调用封装好的操作。这种方式的优点在于,当某一个页面的元素发生变化,只需要修改该页面对象中的代码即可,不需要重复不断的修改测试用例。
3.提高代码重用性
通过PageObjects模式,可以将页面的操作抽象出来,形成一套统一的接口,这样就可以在多个测试用例中复用这些操作,提高了代码的重用性。此外,这种模式还可以使得测试框架结构合理、清晰、代码更加模块化,避免冗余、耦合性过高。
4.结合传统测试框架
在实际应用中,PageObjects模式可以与传统的测试框架相结合,例如unittest、pytest等。测试层(也称:业务层)可以结合单元测试框架来测试,将一个待测页面(或者待测试对象)封装成一个类(Class),类的方法:各种元素操作的方法。测试层从页面操作层调用操作方法,写成测试用例。
总的来说,PageObjects模式与传统测试框架的结合,可以有效地提高测试代码的
maintainability
和
reusability,降低代码的耦合度,使得测试更加灵活和高效。