龙泉市建设局门户网站,上海人才网站,做网批那个网站好,wordpress建的论坛目录#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09;前言
POM设计模式
主要是…
目录导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜前言
POM设计模式
主要是将每一个页面设计为一个Class其中包含页面中需要测试的元素按钮输入框标题 等这样在Selenium测试页面中可以通过调用页面类来获取页面元素这样巧妙的避免了当页面元素id或者位置变化时需要改测试页面代码的情况。 web自动化测试https://www.bilibili.com/video/BV1MS4y1W79K/ 当页面元素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整个项目需要用到的配置项。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
生命力的意义在于拼搏因为世界本身就是一个竞技场就是无数次被礁石击碎又无数闪地扑向礁石生命的绿荫才会越长越茂盛。
我们在我们的劳动过程中学习思考劳动的结果我们认识了世界的奥妙于是我们就真正来改变生活了。
能不能成功关键在于我们是直面困难、解决困难还是回避困难、在困难面前放弃。如果你不端正自己的态度那么你永远都做不好事情。