selenium之PageObject设计模式

1. PageObject介绍

PageObject是selenium公认的设计模式,PageObject的模式可以创建高可维护性以及健壮性的测试脚本,在设计测试脚本时,把元素和方法按照页面抽象出来,分离成一定的对象,然后再进行组织。PageObject模式, 创建一个对象来对应页面的一个应用,因此,可以为每一个页面定义一个类,并为每个页面的属性和操作构建模型。这就相当于再测试脚本和被测试页面功能中分离出来一层,屏蔽了定位器、底层处理元素的方法和业务逻辑,取而代之的是PageObject提供的一些列的API来处理页面功能。

测试应该在更上层使用这些页面对象,在底层页面中的属性或任何操作都不会终端测试,PageObject优点:

- 抽象出对象可以最大成都的降低开发人员修改页面代码对测试的影响,所以,仅需要对页面对象进行调整,而对测试没有影响

- 可以在多个测试用例中复用一部分测试代码

- 代码更加灵活 易懂 可维护

 

2. PageObject实践

Page-Object是python+selenium最佳实践模式。主要是将每一个页面设计为一个class, 其中包含页面中需要测试的元素(按钮、输入框、标题等等)这样在selenium测试页面中可以通过调用页面类来获取页面元素,这样就避免了当元素ID发生变化的时候,需要更改测试页面代码的情况。当测试元素ID发生变化的时候,只需要更改测试页面CLASS中页面的属性就可以了。

该项目以登陆QQ邮箱为例子,来使用Page-Object模式实现python+selenium的自动化测试

项目结构:
PageObjectModel- 测试项目

drivers:用于存放驱动exe文件
mail:用于存放邮箱登录项目的测试用例、测试报告以及测试数据等
run_all_test.py:用于运行项目自动化用例

Mail目录
-Data:存放测试数据
-Report:存放HTML测试报告,其中该目录下的image目录用于存放测试过程中的截图
-TestCase:用于存放测试用例,TestObject目录(存放page对象),Model(存放公用的函数或者类)
test_case目录

model:存放配置函数及公共类
page_object:用于存放页面对象
login_case.py:测试对象用例

 

转载于:https://www.cnblogs.com/srialy/p/8658254.html

你可能感兴趣的:(selenium之PageObject设计模式)