(一)前言
简单的说就是分为2层,页面class 和测试class。
页面class:分为父类和子类(子类指具体的页面,每一个页面都创建一个类),父类中定义公有的属性和方法(操作)。
#对面向对象有了解的,应该很容易理解抽象出公有属性和方法的意思
#父类和子类我是按自己的理解进行描述的,或者可以说basepage对象(父对象,提供公有的属性、方法) 和 page对象(具体哪一个页面)
测试class:按照业务流程,对各个页面的属性、操作进行组合,形成一个测试用例。
使用page object模式,抽象出各个页面的元素、方法,然后再按照测试用例的要求进行组合。这样做的好处是
1、页面修改了,只要对页面类进行修改就好了,对测试类(测试用例)没太大影响
2、可以在多个测试复用部分代码。
3、测试代码(测试类、测试用例)部分变得更易读、灵活、可维护。
我把上一篇的代码按照page object模式修改了下,代码如下。
(二)父类(BasePage对象,base.py)
(三) 首页(page对象(子类),homepage.py)
(四) 注册页面(page对象(子类),registerpage.py)
(五) 测试类(测试用例,testRegisterNewUser.py)
(六)测试准备(basetestcase.py)
#这部分本来想放到第二步的,不过感觉有点影响对page object的理解,就放到最后了
创建一个类,定义setup()和teardowm()方法,方便所有测试复用。这个类可以理解为是测试类的一部分,我只是把所有测试类(测试用例)都用到的setup()和teardowm()拿出来,方便复用。如果哪个测试用例有特殊要求,也可以重写。
网友评论