• 0
  • 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脚本过程中,尝试收集手机性能数据,标准可以暂定:首次收集到的数据,或者竞品的数据,不过竞品数据会比较难拿到。


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   早些时候,苹果公司被爆阻止了一款使用ChatGPT功能的电邮APP更新,一度在业内引发了不小的争议。而在当地时间周五(3月3日),这一事件有了最新进展,在开发商保证该APP具有内容过滤功能后,这款应用已被允许更新。  此次争议事件的主角是开发商Blix Inc.旗下的电邮应用BlueMail。  BlueMail的新人工智能功能使用的是OpenAI最新的ChatGPT聊天机器人(10.660, 0.00, 0.00%),ChatGPT能让用户与人工智能进行拟人化的交谈,并就各种主题进行高级长篇写作。而BlueMail在内嵌ChatGPT功能后,将可以利用以前的电子邮件和...
            0 0 784
            分享
          • 接口测试和功能测试虽然都属于软件测试的范畴,但两者的测试目的、测试内容和测试重点都有所不同。那今天我将接口测试和功能测试配合实例为大家介绍这两种测试的区别,以 Apifox 这个最近风头很大的接口测试软件进行讲解。一、测试目的不同接口测试的目的是测试应用程序的接口是否能够按照规范要求与其他系统或组件进行交互,以及在不同负载条件下接口的稳定性、性能和安全性。功能测试的目的则是为了确保应用程序的功能符合规格说明书或需求文档中的规定。Apifox 是一个在线接口测试平台(但其实也有桌面端啦),它的主要目的是为了帮助测试人员快速创建和执行接口测试用例,验证接口的正确性和稳定性。通过使用 Apifox,...
            0 0 926
            分享
          • 1.3.域名系统1.3.1.域名系统工作原理DNS解析过程是递归查询的,具体过程如下:用户要访问域名www.example.com时,先查看本机hosts是否有记录或者本机是否有DNS缓存,如果有,直接返回结果,否则向递归服务器查询该域名的IP地址递归缓存为空时,首先向根服务器查询com顶级域的IP地址根服务器告知递归服务器com顶级域名服务器的IP地址递归向com顶级域名服务器查询负责example.com的权威服务器的IPcom顶级域名服务器返回相应的IP地址递归向example.com的权威服务器查询www.example.com的地址记录权威服务器告知www.example.com的地...
            0 0 1256
            分享
          • 在带一些测试新人的时候,发现大家的测试比较随意,基本上是看到哪测哪,提交的bug基本都是一眼可见的那种,很少带入用户实际使用场景,或者有两到三步的操作都是少之又少的,这样的版本上线之后会有什么问题呢,就是用户刚下载这个软件使用时ok的,但是随着使用次数增多,使用时间延长,一些问题逐渐浮出水面。如果这些问题是必现问题还好,研发还好解决,如果是偶现的,那就不好搞了,用户是不会愿意或者说没有时间去帮你复现问题的。因此,我们强调,测试期间,一定要有章法,保证能发现并解决大部分bug。当开发发布一个全新版本时,测试就要开始干活了,这个时候,bug一般都是比较多的,好像随便测测都能找到不少问题。但是为了报...
            5 5 7716
            分享
          • 我2006年计算机专业硕士毕业至今,从事软件测试及质量保障领域已经十几个年头了,从白盒自动化测试到黑盒自动化测试,从功能测试到性能测试、安全测试,从测试流程、测试框架到后来的测试管理、质量体系建设,深爱着这个行业,经常为能和小伙伴们攻克了一个技术小山头而激动兴奋, 也为了加班加点使命必达的完成了一个艰巨任务而感到欣慰。我负责测试技术管理、团队管理也已经有8年多了,期间面试过的人少说也有一两千了。从面试中常见的两个场景来聊一聊测试的基本功:场景:面试官: 你最擅长的测试领域在哪里啊?有什么职业发展计划吗?候选人:我比较多的经验在功能测试,以后希望能从事自动化测试方向。 对于这么常见的问...
            0 1 2182
            分享
      • 51testing软件测试圈微信