目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
在UI自动化测试中,PO是目前最为主流,也是公认最佳的设计模式;
UI自动化测试最初是通过关键字驱动+数据驱动的形式来实现,然后升级到PO模式;
什么是关键字驱动?
简单而言,就是将Selenium常用功能进行二次封装
譬如:把查找元素、点击、输入等原生方法进行封装
特点:可以让不懂代码的测试人员也能做自动化测试,彻底地实现测试步骤、测试数据和程序的分离
关键字驱动 vs RF?
可以把关键字驱动对比用RF(Robot Framework)做的自动化测试,在RF GUI界面调用关键字,并传入参数即可完成一系列的元素操作;
而我们在Pycharm上完成关键字驱动也是相同道理,封装好Selenium常用方法,然后去调用关键字,不同页面传入不同的参数即可完成一系列的元素操作
什么是数据驱动?
固定的程序,固定的测试步骤,使用不同的数据进行测试【需要多组数据来测试】
将代码和数据进行分离,单纯由数据组成文件,再由文件来驱动关键字,最终实现整个自动化的流程
什么是关键字驱动+数据驱动?
读取数据,将固定格式的数据进行拼接【读取数据】
拼接后的内容作为关键字所需要的参数,进行传入【传入数据】
调用关键字,将执行结果和预期结果进行对比,从而获取单条测试用例执行是否通过的结果【执行关键字,断言结果】
关键字驱动+数据驱动是一种设计模式。
什么是PO模式?
PO模式是page object model的缩写,是一种设计模式
把待测页面当成一个页面对象,一般包含了元素对象的定位和元素操作方法,将页面对象和真实的网站页面一 一映射起来
比如一个登录页面,使用PO模式后,操作的步骤如下:
会先创建一个class,该class就是登录页面对象类;
类的属性:用户名输入框,密码输入框,登录按钮的webElenent;
类的方法:各种元素操作的方法;
方法里面会调用对象库层的二次封装Selenium的方法;
测试层从页面操作层调用操作方法,写成测试用例,这种模式可以做到定位元素与测试用例分离;
所以这样的设计理念就是PO模式;
PO模式的分层
PO模式可以把一个页面一般分为三层
对象库层:二次封装Selenium的方法
页面操作层(也称:逻辑层):封装页面的元素对象和元素操作
测试层(也称:业务层):多个页面操作完成一个业务测试,一般结合单元测试框架(unittest、pytest)来测试
分四层的
对象库层:二次封装Selenium的方法
页面层:封装页面的元素对象
操作层:封装页面的元素操作
测试层:多个页面操作完成一个业务测试
PO模式和关键字驱动+数据驱动有什么区别?(PO模式的原理)
升级到PO模式之后,首先将Selenium常用的功能,结合实际业务需要进行二次封装;封装的内容是完全贴合实际业务来实现的【封装Selenium】
将元素对象和元素操作进行整合【元素对象整合】
将对象库和测试代码分离,实现数据与代码分离【数据与代码分离】
PO模式给代码带来的优势
代码冗余明显降低:二次封装Selenium方法和提取公共方法,提高代码复用性
代码的阅读性明显提升:因为三层分级,将不同内容进行不同的封装,整体代码阅读性提升
代码维护性明显提升:UI测试中,页面若经常变动,代码的维护量随之增多;因为三层分级,我们只需要修改页面对象的代码,如元素对象或者操作对象的方法,不用修改测试用例的代码,也不影响测试用例的正常执行
降低代码耦合性
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
你的人生只有一次,无论前方是荆棘丛生还是坦途平庸,都要勇往直前,不断超越自己。每一分每一秒都要珍惜,把握好自己的时间,用汗水和努力去铸就辉煌的未来。行动起来,让未来的自己感谢今天拼搏的你!
每一次的付出,都会有不同的收获;每一份努力,都是你人生中的一笔财富。无论你走到哪里,都要保持对生活的热爱和对自己的信心,坚定不移地追逐梦想!
自律是成功之母,付出必有回报;只要你肯努力,就能创造未来,因为每个人都有无限的潜力。别停下脚步,继续前进,即使路途漫长艰辛,也不要放弃。坚持下去,你会发现成功就在不远处!