自动化测试的PO模式「建议收藏」

自动化测试的PO模式「建议收藏」什么是PO?1.页面对象模型(PO)是一种设计模式,用来管理维护一组页面元素的对象库.2.在PO下,应用程序的每一个页面都有一个对应的Page类.3.每一个Page类维护着该页面的元素集和操作这些元素的方法.PO的好处?1.代码可读性强2.可维护性高3.复用性高怎么设计PO?设计的原则1.抽象每一个页面2.页面中元素不暴露,仅报错操作元素的方法3.页面不应该有繁琐的继承关…

大家好,又见面了,我是你们的朋友全栈君。

什么是PO?

1.页面对象模型(PO)是一种设计模式,用来管理维护一组页面元素的对象库.

2.在PO下,应用程序的每一个页面都有一个对应的Page类.

3.每一个Page类维护着该页面的元素集和操作这些元素的方法.

在这里插入图片描述

PO的好处?

1.代码可读性强

2.可维护性高

3.复用性高

怎么设计PO?

设计的原则
1.抽象每一个页面

2.页面中元素不暴露,仅报错操作元素的方法

3.页面不应该有繁琐的继承关系

4.页面中不是所有元素都需要涉及到,核型业务元素做建模使用

5.把页面划分功能模块,在Page中实现这些功能方法

在这里插入图片描述

下面我们看下PO的代码目录组织示例:

在这里插入图片描述

PO的优势
1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。

2、页面对象与用例分离,使得我们更好的复用对象。

3、可复用的页面方法代码会变得更加优化

4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,

 方法命名为:gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。

PO实现示例
下面看下使用PO设计模式构建的百度搜索用例,先看下代码组织结构如下:
在这里插入图片描述

#basePage.py代码如下
在这里插入图片描述

#searchPage.py代码如下
在这里插入图片描述

#testSearchPage.py代码如下

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134723.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • golang 进制转换_java string转integer

    golang 进制转换_java string转integer1-Youmaywriteyourconversionfunction(Fastest):funcString(nint32)string{buf:=[11]byte{}pos:=len(buf)i:=int64(n)signed:=i<0ifsigned{i=-i}for{pos–buf[pos],i=’0’+byt

  • java map 缓存_缓存用于

    java map 缓存_缓存用于缓存什么是缓存?平常的开发项目中,多多少少都会使用到缓存,因为一些数据我们没有必要每次查询的时候都去查询到数据库。缓存的使用场景:在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中,相对从数据库中读取,读缓存效率会有很大提升。在集群环境下,常用的分布式缓存有Redis等。但在某些业务场景上,可能不需要去搭建一套复杂的分布式缓存系统,在单机环境下,通常是会希望使用内部的缓存(LocalCache)。使用map缓存方案:基于ConcurrentHashMap实现数

  • Java:使用wait()与notify()实现线程间协作

    Java:使用wait()与notify()实现线程间协作

  • acm总结帖_By AekdyCoin

    acm总结帖_By AekdyCoinacm总结帖_ByAekdyCoin各路大牛都在中国大陆的5个赛区结束以后纷纷发出了退役帖,总结帖,或功德圆满,或死不瞑目,而这或许又会造就明年的各种“炸尸”风波。为了考虑在发退役贴以后明年我也成为“僵尸”的可能性,于是改名曰“总结贴”,不提比赛细节,不提比赛流水账,权当是大学本科生涯中acm生活的点滴记录……(1)入门篇甲PS:以下内容…

  • PHP JSON_ENCODE 不转义中文汉字的方法

    PHP JSON_ENCODE 不转义中文汉字的方法ios程序中不识别读取到的JSON数据中\u开头的数据。PHP生成JSON的时候,必须将汉字不转义为\u开头的UNICODE数据。网上很多,但是其实都是错误的,正确的方法是在json_encode中加入一个参数JSON_UNESCAPED_UNICODE(bydefault7#zbphp.com)json_encode($data,JSON_UNESCAPED_U

  • pytest指定用例_白盒测试用例

    pytest指定用例_白盒测试用例前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号