如何使用Python实现UI自动化测试,小白完整入门篇

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

手动测试做久了,总会想要尝试接触些新技术,UI自动化就是一个非常容易尝试的入门砖。

小白也能做,相信自己放手去试吧。

在这里插入图片描述

一、为什么需要做UI自动化

1.想一想,为什么需要做UI自动化

可以从解决问题的角度出发,想一下在工作中,哪些工作重复性非常高?

最最常见的重复性工作,那就是:功能回归测试啦。

现在市面上的大小公司都在推敏捷开发,几乎都是2周/3周发一次版本。

即2周/3周跑一次回归测试,而且Android和iOS都需要跑一次,即便分在个人头上的回归内容很少,其实也占据了大家大量时间。

当然,并不是说UI自动化只能在回归测试阶段发光发热,在测试的任何阶段都可以尝试跑UI测试脚本,可以根据公司需要调整运行阶段、运行次数,并且可以随时修正脚本内容。

2.做UI自动化可能需要克服的阻力

在一个技术氛围偏低的团队,如果想要尝试新技术,有可能会比较难以迈出第一步。

这时候你需要给出充足的理由,再开始跟领导沟通。

第一步,先做个demo,单纯的启动APP,跑通几个简单的主流场景。

第二步,整理一份简略版主流程测试点,作为后续使用UI自动化来实现的内容。

第三步,去找领导沟通吧

(1)有明确的启动实例,有明确待实现的主流程测试点,想清明确可以运行的测试阶段

(2)邀请组内同事一起加入,和团队伙伴们一起进步

(3)找迭代中闲暇的时间,梳理本期的新流程,并编写新脚本

相信有明确目标,有实例支撑,得到领导的支持应该不会太难。

二、UI自动化可以怎么做

1.常用工具

目前比较常用的有:Appium、Airtest、AppiumStudio

建议选择其中一个长期使用,推荐使用:Appium。

2.常用脚本语言

Python、Java均可,如果是零基础小白的话,Python上手可能会更快。

3.平台区分:iOS、Android

4.集成jenkins

如有稳定项目后,可以尝试集成到jenkins上,定期运行。

5.一个简单的UI自动化例子(iOS版本)

因为目前网上已有巨量的Android 自动化例子,这里给一份iOS 真机的示例。

运行iOS自动化,需要有一台mac,资金不充裕的话,建议入macmini。

(1) 启动APP

caps = {}

caps[“platformName”] = “iOS”

caps[“platformVersion”] = “13.1.3”

caps[“deviceName”] = “xiaobai”

caps[“xcodeOrgId”] = “xxx” # 需要跟开发同事要一份

caps[“xcodeSigningId”] = “iPhone Developer”

caps[“automationName”] = “XCUITest”

caps[“startIWDP”] = “true”

caps[“udid”] = “auto”

# 真机专用包,如/DerivedData下没有app,需要xcode上build一下

caps[“app”] = “xxx”

(2)定位元素

iOS定位元素方式主要有以下几种:

ios_predicate、accessibility_id、class_name、xpath

以下的例子里使用的是xpath,查找效率十分低下。

在实际使用中大家可尝试使用ios_predicate。

cls.driver.find_element_by_xpath(“//XCUIElementTypeButton[@name=‘跳过’]”).click()

(3)断言

推荐使用:Assertpy

pypi地址:
https://pypi.org/project/assertpy/

github地址:
https://github.com/ActivisionGameScience/assertpy

(在readme里,有相当详细的使用方法)

这个三方库库,实现了多种数据类型的断言方法。

不过对小白来说,可以单纯先尝试判断元素是否存在。

assert_that(self.find(By.NAME, "啦啦)).is_not_none()

6.还可以尝试什么

(1)可以考虑设计更复杂,更长链条的场景,但这点需要考虑各个公司的具体业务场景,可挖掘的业务点很多,可以拉同事一块讨论。

(2)UI自动化和接口数据校验拆开做,混杂在一起容易做的庞大冗余。

(3)可以在跑UI脚本过程中,尝试收集手机性能数据,标准可以暂定:首次收集到的数据,或者竞品的数据,不过竞品数据会比较难拿到。

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值