吐血整理,web自动化测试,POM模式搭建自动化测试框架(超级详细)

目录:导读

 

 

前言

POM设计模式

主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。

当页面元素id变化时,只需要更改测试页Class中页面的属性即可。 简单来讲,就是将代码以页面为单位进行组织,针对这个页面上的所有信息,相关操作都放到一个类中;从而使具体的测试用例变成了简单的调用和验证操作。

POM的优点

1、PO提供了页面元素操作和业务流程相分离的模式,可以使测试的代码结构比之前清晰,可读性强。

2、更方便地复用对象和方法。

3、对象库是独立于测试用例的、统一的对象库,可以通过集成不同的工具类来达到不同的测试目的。比如集成pytest可以用来做单元测试、自动化/功能测试,同时也可以集成JBehave/Cucumber等来做验收测试。

4、使得整体自动化测试的优点变得更容易一些,如果有某个页面的元素需要变更,那么就可以直接更改封装好的页面元素类即可,而不用更改调用它的其他测试类/代码。这样整个的代码维护成本也会缩减。

PO的核心就是分层思想,把同属于一个页面的元素都放在一个页面类中。
 

POM结构设计

逻辑代码:基类,实现所有工具函数封装,类似于关键字驱动设计模式;
页面对象代码:基于系统页面,通过调用工具函数来实现业务的操作,生成对应的页面对象;
测试代码:基于测试需要,组件页面对象,实现核心流程的自动化,执行测试用例;
测试数据:为测试用例的执行提供所需要的测试数据。
 

PO模式主要分三层

基础层BasePage:封装一些最基础的方法,元素定位,框架跳转等
PO层:元素定位、获得元素对象,页面动作
测试用例层:业务逻辑,数据驱动

三者的关系:PO层继承继承层,测试用例层调用PO层。

页面对象模型(PO)是一种设计模式,用来管理维护一组页面元素的对象库;
在PO下,应用程序的每一个页面都有一个对应的Page类;
每一个Page类维护着该页面的元素集和操作这些元素的方法;
 

基本原则
每个页面都是一个类
所有的定位封装类的属性
操作行为封装成类的方法
相同的行为不同的结果创建为不同的方法
定位属性不要暴露给外部
不要在方法内进行断言

搭建POM模型框架

以微信登录为例子
微信登录PO模式,先来做下分析:

封装页面,如:登录页面可以设计成LoginPage类
封装方法,如:登录页面的登录方法是login(username,password)
外部文件维护数,如:定位用户名和密码框的表达方法不写在代码里,放在外部文件中
页面元素属性化,如:只要涉及到要操作的元素名称,具体定位方式不在代码中,元素定位做到可以配置化,配置以键值对的形式存在。
 

根据前面的知识,举个登录的例子

梳理一遍登录流程
要进行一次成功的登录,需要做哪些事情?
要进入登录页面,需要经过哪些页面?
要能够完成登录操作,需要操作哪些元素?
要完成这些元素的操作,又需要哪些操作?

经过分析:
要进行一次成功的登录:需要进入首页,然后点击登录按钮,再在登录页面输入正确的用户名和密码,最后点击登录按钮
要进入登录页面:成功进入首页,然后点击登录按钮
要能够完成登录操作:需要用户名和密码输入框、登录按钮
要完成这些元素操作:需要senk_key()、click()的方法

接下来可以记录下,完成登录的操作,一共经过两个页面:首页和登录页,当然为了简化起见,可以直接从登陆页开始。这里就确定了PO设计中的页面设计。

再根据前面PO模型的结构:可以把整个脚本再拆开,建立几个包:page、testcase等等。

完整的POM完整框架

Base层:定义项目需要的基础方法,特别是一些基础操作,如元素click操作、sendkeys操作,调用JavaScript脚本的方法和其他一些与基本浏览器相关的操作。

Common层:包含处理Excel文件的方法,获取项目路径、测试系统URL的信息和框架执行相关日志功能的实现方法。

Data层:存放测试数据,在这里可以维护测试数据,这样存放是为了让项目的可维护性强、整体的条理性强。测试数据有时是自动化测试的驱动因素,因此对Data的管理和维护就显的特别重要。

Logs层:存放项目在运行过程中产生的日志文件。

PageObject层:这里是PO的核心层,该层不但涉及代码技术,还涉及对项目业务的分析,进而对项目的页面进行分析。

Reports层:存放项目执行过程中产生的测试报告文件,测试报告是对测试结果的总结。

TestCase层:管理测试用例和执行测试,相当于测试的总入口。

config.ini:整个项目需要用到的配置项。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值