百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

手工测试小白也能分分钟学会的UI自动化测试(Python版)

toyiye 2024-04-12 15:48 41 浏览 0 评论

手动测试做久了,总会想要尝试接触些新技术,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脚本过程中,尝试收集手机性能数据,标准可以暂定:首次收集到的数据,或者竞品的数据,不过竞品数据会比较难拿到。

请关注+私信回复:“测试”就可以免费拿到Python测试开发课程大纲及软件测试学习资料,快速让自己变强!

相关推荐

Python 可视化工具包(python常见的可视化工具)

喜欢用Python做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?本文将介绍一些常用的Python可视化包,包括这些包的优缺点以及分别适用于什么样的场景。这篇文章...

Python的GPU编程实例——近邻表计算

目录技术背景...

python算法体验-3.python实现欧式距离的三种方式

欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。欧式距离源自N维欧氏空间中两点...

python实现Lasso回归分析(特征筛选、建模预测)

实现功能:...

python语言检测模块langid、langdetect使用

本文首发地址:https://blog.csdn.net/Together_CZ/article/details/86678423欢迎关注我的博客【Together_CZ】,我是沂水寒城!之前使用数据...

7天学会Python最佳可视化工具Seaborn(一):可视化变量间的关系

众所周知,Seaborn“可能”是Python下最友好、易用的可视化工具了,可视化效果也非常好。但是截止目前,并没有一份中文教程供广大国内Python使用者查阅学习。怎么能因为语言的问题,让大家错过这...

在Python中使用K-Means聚类和PCA主成分分析进行图像压缩

各位读者好,在这篇文章中我们尝试使用sklearn库比较k-means聚类算法和主成分分析(PCA)在图像压缩上的实现和结果。压缩图像的效果通过占用的减少比例以及和原始图像的差异大小来评估。图像压...

OpenCV-Python 相机校准 | 四十九

目标在本节中,我们将学习由相机引起的失真类型,如何找到相机的固有和非固有特性如何根据这些特性使图像不失真基础一些针孔相机会给图像带来明显的失真。两种主要的变形是径向变形和切向变形。径向变形会导致直线出...

python数据预处理技术(python 数据预处理)

在真实世界中,经常需要处理大量的原始数据,这些原始数据是机器学习算法无法理解的。为了让机器学习算法理解原始数据,需要对数据进行预处理。我们运行anaconda集成环境下的“jupyternotebo...

【Python可视化系列】一文教你绘制不同类型散点图(理论+源码)

这是...

OpenCV-Python 特征匹配 | 四十四

目标在本章中,我们将看到如何将一个图像中的特征与其他图像进行匹配。我们将在OpenCV中使用Brute-Force匹配器和FLANN匹配器Brute-Force匹配器的基础蛮力匹配器很简单。它使用第一...

实战python中Random模块使用(python中的random模块)

一、random模块简介Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。要在Python中使用random模块,只需要...

Python随机模块22个函数详解(python随机函数的应用)

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。平时数据分析各种分布的数据构造也会用到。random模块,用于生成伪随机数,之所以称之为伪随机数,是...

说冲A就冲A,这个宝藏男孩冯俊杰我pick了

爱奇艺新上架了一部网剧叫《最后一个女神》。有个惊人的发现,剧里男三居然是《青春有你》的训练生冯俊杰。剧组穷,戏服没几件,冯俊杰几乎靠一件背背佳撑起了整部剧。冯俊杰快速了解一下。四川人,来自觉醒东方,人...

唐山打人嫌犯陈继志去医院就医的背后,隐藏着三个精心设计的步骤

种种迹象表明,陈继志这帮人对处理打人之后的善后工作是轻车驾熟的,他们想实施的计划应该是这样的:首先第一步与伤者进同一家医院做伤情鉴定,鉴定级别最好要比对方严重,于是两位女伤者被鉴定为轻伤,他们就要求医...

取消回复欢迎 发表评论:

请填写验证码