• 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软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 软件测试是对项目研发过程的产物(文档,代码等)进行审查,保障产品质量的过程。我们可以通过手工测试,自动化测试,工具扫描等方法完成这个任务。其中,自动化测试是当前重要的一种测试方法,具有响应速度快、稳定性高、人工干预少的特点,很好的契合了高响应、海量数据验证等需求的测试任务。数据驱动是自动化测试的灵魂,数据驱动的应用程度直接决定了自动化测试的水平和质量。一、自动化测试和数据驱动如果你有100亩麦子需要收割,你会怎么做?方法一:拎起镰刀或者雇几个人拎起镰刀割麦子。方法二:制造或者购买一台收割机,然后开着收割机割麦子。显然,这两种方法都能完成任务,但是,方法二具有重资产、高效率的特点。测试就如同这割...
            1 1 1620
            分享
          • 软件包含哪些内容数据 程序 文档软件生命周期需求分析概要设计详细设计编码测试验收瀑布模型计划需求分析设计编码测试运行-维护螺旋模型螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。测试流程获取测试需求编写测试计划指定测试方案开发于设计测试用例执行测试提交缺陷报告测试分析于评审提交测试总结准备下一版本测试软件测试过程模型V模型W模型H模型H模型适合外包测试公司 来一个需求用户需要提供软件,需求,设计,标准大型中上型的测试部门都是独立的优点早准备,早执行,效率高X模型X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验...
            0 0 4138
            分享
          • 代码题:**旋转数组:这个在美团一面的时候也遇到过**假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。int findMin(vector<int>& nums) {         int left = 0, right = nums.size()-1,&...
            1 1 1845
            分享
          •   智能穿戴设备是目前已经渐渐融入到日常生活中的一种随身设备了,适用人群和本身功能在不断提升,而且也是目前市场上比较流行的产品需要。各种智能穿戴设备如雨后春笋一般层出不穷。  智能手环作为一种轻量级穿戴设备,外观时尚运动,这种设计风格对于习惯佩戴首饰的用户而言,颇具诱惑力。并同时具备了手表、运动监测和健康监测等诸多功能的智能设备,越来越受到广大用户的青睐,同时在市场上也进入了竞争的白热化阶段,逐渐形成了自己的升级更新路径。  智能手环因为不具备安装应用等功能,严格来说是不能称之为智能设备的,但是因为业界对于同样特质的智能手表给予了“智能”的名号,所以智能手环也就搭了顺车,被冠以智能设备的名号。...
            13 13 2385
            分享
          • 读者提问:偶现 BUG,怎么报?阿常回答:这个方面我从三方面回答:1、出现偶发 BUG,报不报;2、出现偶发 BUG,怎么报;3、偶发 BUG 如何跟踪闭环。一、出现偶发 BUG,报不报偶发 BUG 要报。偶发 BUG 即低概率 BUG,它也许只会出现一次,但我们要相信,即使是偶发 BUG 也有其必现的路径,只是我们暂时未找到复现的方法。二、出现偶发 BUG,怎么报增加一类偶现 BUG 类型。先分析 BUG 严重程度,如果是严重影响系统的 BUG,第一时间反馈给研发处理。记录 BUG 复现的测试场景、测试步骤,上传日志文件以及其他相关截图,提交 BUG 单。三、偶发 BUG 如何跟踪...
            0 0 964
            分享
      • 51testing软件测试圈微信