Page Object 模式很火,UI 自动化测试到底要不要用?怎么用?

本文探讨了一家手游公司在使用Unity时遇到的自动化测试挑战,以及Page Object模式在UI自动化测试中的适用性。作者分析了Page Object模式的优势和劣势,包括代码结构清晰、易于维护和复用性,同时也指出在某些情况下可能会导致代码量增加。通过对Python WebDriver的Page Object模式的实现和改进,提出了减少代码量的方法,使自动化测试更贴近业务需求。
摘要由CSDN通过智能技术生成

在这里插入图片描述
本文作者为霍格沃兹测试学院第 9 期学员 zzt

业务背景

我们是一家手游公司,前端使用 Unity。Appium 之类框架的都无法识别 Unity 控件,最后得知网易Airtest 下面的 poco 框架可识别 Unity 控件。

由于之前没有相关经验靠自己摸爬滚打,走了很多弯路,代码结构/框架也重构了几次(现在还想重构😂 )。在设计之初有过很多构想,觉得应该满足那些要求:
颗粒度尽可能小且case互不影响

可根据不同策略执行不同深度case集

负载均衡:收集可用测试机根据对应测试机执行快慢分发不同数量case任务

重复执行

失败重试 (因业务特殊目前不准备失败重试,因为case前置数据准备是通过跑sql修改数据,但前端不会及时刷新,需要找到一个刷新点,主流的刷新点是重登,从当前case界面-》跳转游戏主界面-》设置切换账号-》登录界面登录账号-》跳转游戏主界面-》跳转case指定界面,这个过程非常耗时,会大幅增加case执行时间)

让case编写者只需要关注业务

以最小的改动面对未来需求的变化


还实现了很多,这里不一一列举.

问题来了

了解到 Page Object 模式很主流,很火。然后使用 yaml 数据驱动,很炫酷,高大上的样子(想立马就应用到项目中)。
但 UI 自动化测试到底要不要用 Page Object 模式,以及 yaml 数据驱动?或者说我这个情况要不要使用 PO 模式?

任何技术最终还要是服务于业务,是必须要能解决某些或某类问题的。这里以我对 PO 模式非常浅显的理解和我当前的做法做了个对比:
在这里插入图片描述
单看表格可能看不懂哈,直接贴 Python 代码(省去了case前置界面准备,前置数据准备):

代码内容

代码主要是把一个战术技能从0级升级到10, 并做相关断言。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值