腾讯TMQ在线沙龙回顾|UI自动化中阶思考与实践

UI自动化中阶思考与实践

活动时间:2017年4月17日 QQ群视频交流

活动介绍:TMQ在线沙龙第十九期分享活动

本次分享的主题是:UI自动化中阶思考与实践

共有122位测试小伙伴报名参加活动,在线观看视频人数 66人!

想知道活动分享了些啥吗,

请往下看吧!

活动嘉宾

嘉宾简介

陈帅,腾讯专项技术测试工程师,目前主要负责腾讯WIFI管家业务及专项测试,多年测试经验,在UI自动化开发方面,在appium、uiautomator、espresso等工具上都有实战经验。

分享主题

1.UI自动化会存在哪些问题 2.从设计、环境、细节三个角度分析和解决问题 3.总结UI自动化的使用姿势

问答环节

1、可以多个UI自动化框架组合使用,能举一个实际例子吗,最好是结合实际问题?

答:Espresso 和 uiautomator是可以组合使用。

2、资源混淆是不是需要开发提供资源对应表?

答:是的。

3、关于多个界面会有弹框,但不确定那些页面会弹,什么时候会弹,这个能具体讲讲怎么解决了?还有关于引导,这个怎么处理?

答:

弹框:建议详细了解下uiautomator中UiWatcher的工作原理,在启动前将uiwatcher注册好。无需关注在哪些页面弹、什么时候弹。

引导:直接贴代码给你参考一下。

4、我们目前生产版本比较多,但是我们是混合模式的APP,更新H5 比较多,这种情况,我们怎么进行ui自动化,在哪个阶段做比较好?

答:Espresso,appium,macaca,robotium都支持混合模式,具体用哪个,建议根据自己的结合项目的调研报告来选择。H5页面更新较多的话,这部分建议不考虑自动化,UI自动化主要针对功能稳定的用例来做。

5、请问下对应用悬浮窗和toast有什么好的抓取和验证方式吗?

答:Espresso可以抓取到toast。

6、请问下如何更精确的抓取是应用的问题,快速排除是脚本的问题?

答:日志,截图,录屏,开启开发者选项中的显示点按操作反馈和指针位置等。

7、请问下是否有准确的在问题发生时进行截图方法,往往截图时已经错

了问题界面?

答:参考问题6,谢谢。

8、除了mainlog日志和截图,是否还有其它的日志或者内容可以辅助问题分析?

答:录屏,stf minicap。

9、有些手机在自动安装时弹出安装的弹窗如何更好的解决?

答:在拉起测试任务的进程前,先使用uiautomator拉起一个watcher进程去监控安装弹框,这个进程监控界面上弹出的安装、信任这些东西,统一都点掉。

10、对需要多机的测试,比如来一个电话或者来一条短信是否有好的解决方法?

答:抱歉,‍我这边也没有处理过这种场景,暂无法给予答复。‍

11、混合模式的app选择哪个自动化测试工具?

答:Espresso,appium,macaca,robotium都支持混合模式,具体用哪个,建议根据自己的结合项目的调研报告来选择。

12、我们项目的 发现webview中webElement的click不生效。只好获取绝对坐标,然后点击屏幕的绝对左边。使用的appium。有其他解决建议吗?

答:有以下两种值得一试的方案。‍

1、找到相邻控件坐标,计算当前控件的绝对坐标。如下图:

uiautomatorviewer中点击右上角警告小三角,会得到有一些元素(黄色控件),是可能无法找到的。而使用相对坐标就是说,我们可以获取它相邻控件的坐标,然后减去或加上一个比较小的px值,再点击计算后的坐标即可。

2、使用屏幕尺寸计算相对位置。在测试开始,将屏幕尺寸存下来,使用百分比的方式计算得到需要点击的位置。如下:

点击【50%宽度,80%高度】的位置。

13、QQDriver 这个有相关资料吗,关于如何搭建的?

答:这是内部工具,暂未开源。所以,抱歉,不做解释。

14、刚刚老师说到开发改了一个id,只需要改业务层没错,但是如果开发把步骤改了,两个步骤之间多加了一个步骤,那用例层还是需要改的吧?

答:对,必须的。

15、做自动化的时候发现用 uiautomatorviewer.bat 获取id时发现会有获取不到id的情况,请问这是怎么回事?

答:对应的控件,开发如果没有写id的话就没有id,Dump下来UI之后,建议点击界面上的黄色小三角,尽量不要使用那些被置为警告的UI控件,在自动化过程中,会找不到这些控件。

16、比如测试爱奇艺,有很多页面,是进入到每个页面一个封装还是通过查表来进入(一个页面一个封装代码量大)。如果通过查表表中应该有哪些信息,我之前的做法是通过activity+页面标题,但发现很多页面标题以及activity都一样的?

答:我理解你的问题是不知道自动化过程是否已经进入到某个页面,我的做法是选取其中几个元素,这个页面封装一个isLoaded方法,方法中判断这几个元素是否存在,如果返回true就代表这个页面已经打开了。每个page都有这个方法。

17、目前项目用的是appium,主要是采集性能数据 也就是刚提到的UI驱动的性能测试 在两个版本对比测试中,不可避免的要长时间顺序执行多个用例 模拟玩家一个整体操作步骤,怎样能避免由于appium的不稳定带来的问题呢,经常会执行一半appium报错,然后测试中断?

答:不建议使用appium做性能相关的测试,框架本身的问题无法避免,只能换一种框架。性能测试的话,我建议用uiautomator和espresso来驱动会更好。

18、对于类似wifi开关的测试,验证点怎么把握 怎么确定是否真正打开或者关闭 还有对于想从状态栏获取验证信息 有没有好的建议?

答:uiautomatorviewer似乎定位不到状态栏的图标。调用android提供的接口来验证,建议看下wifimanager。建议不要把自己的思维在UI校验上限制死,校验手段有很多,比如读android系统文件,读系统的接口,读数据库等等。往往UI自动化,结合其他的手段一起做,效果会更好。

本文分享自微信公众号 - 腾讯移动品质中心TMQ(gh_2052d3e8c27d)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

技术开发者怎么看微信小程序?值得一试,但……

20030
来自专栏更流畅、简洁的软件开发方式

我写项目的思路和“自然架构”

我写项目的思路     三层的思路是要把页面(UI、数据显示)、业务逻辑、数据处理(也叫持久化)分离开来处理,思路自然是好的,但是一到了实际应用中,好多人...

23090
来自专栏前端黑板报

使用引流公众号组件,你需要知道这些

小程序又开放一项新能力,就是可以在小程序里面引导关注公众号,那以前是怎么做公众号导流的呢?由于小程序里面无法直接识别二维码,只能提示用户保存公众号二维码,然后微...

28320
来自专栏知晓程序

「大众点评点餐」小程序开发经验 01:概述

24240
来自专栏SAP最佳业务实践

SAP最佳业务实践:无变式配置按订单生产(148)-5产成品的技术变更

image.png 1、CSKB客户请求技术变更 客户请求作技术变更。步骤的目的是更改产品的配置(添加物料 R20)。 在BOM 浏览器中,用户参数设置是用来...

42640
来自专栏GA小站

Adwords转化跟踪跟新方案

这是谷歌官方提供的ADwords转化跟踪方案,如果你的部署有ADwords转化跟踪,建议尽快更改,数据收集缺失。

16440
来自专栏花叔的专栏

解读最新小程序跳转方式,请叫我预言花

本文未经允许.......可随意转发^_^!! 话说,小程序团队是打算每个节日发布一个新特性么?61儿童节运营方的礼物来了: 公众号文章内支持小程序跳转的文字链...

70870
来自专栏达摩兵的技术空间

重新思考数据输入

在目前的产品交互中,输入数据然后程序或者产品对数据进行验证是非常常见的需求,而产品进行验证的目的性也很明确,就是为了避免脏数据进入数据库。但是从产品交互本身来讲...

11720
来自专栏Debian社区

谷歌删除Chrome应用板块 2018年全面停用

日前,虽然 谷歌 宣布消灭Chrome浏览器的应用已经过去一段时间,也的确有一部分应用转换成了插件,但谷歌似乎一直没有采取相应的行动。但在近日,该公司却突然动手...

11930
来自专栏企鹅号快讯

UI前端同学回来抢经验,react native开发实战五部曲的实战与锤炼,咬牙学完保证变大牛!

背景 现在很多移动项目全都专项纯rn开发,对于rn的应用趋势不言而喻,学习一些rn的语法并不是十分困难,但是如何在项目中灵活运用,增加实战项目经验,这还是比较困...

51260

扫码关注云+社区

领取腾讯云代金券