FAT(Fast-AutoTest) —专业服务于微信H5/小程序UI自动化测试

2018-06-01   出处:腾讯移动品质中心TMQ  作/译者:奋斗旋  

背景

随着项目的发展,许多项目中H5(特别是微信平台内)以及小程序占比逐渐增多,因此快速建设相关的自动化来提高项目的效率和质量成为了许多项目中的重中之重。


然而目前市面上能完美支持微信H5和小程序测试的测试工具是缺失的。因此我们展开了求索之路,并且成功研发了FAT框架,来解决这个难题。想了解我们是如何解决H5/小程序UI自动化测试难题的看官们,请听我慢慢讲来。


调研之路

首先团队先对市面上流行的测试工具,包括Uiautomator、Appium进行了快速的调研,调研结果如下:

其中Appium看起来是支持H5的,可是在实际操作使用中,切换页面需要重新建立chomedriver通信,控件识别耗时长,稳定性差,严重影响自动化的维护成本,而小程序更是无法支持。


调研的结论让人沮丧,现有工具都不能很好的支持小程序测试。俗话说只要思想不滑坡,办法总比困难多,没有什么可以阻止我们前进的道路!终于在一篇文章中得到了启发,关键技术点的就是—Chrome debugging protocol。


撸起袖子加油干在得到关键信息之后,团队决定自己开搞,立志于提供微信内H5/小程序UI自动化的统一解决方案,于是,FAT(Fast-AutoTest)诞生了!框架整体采用分层设计,API设计方式参考WebDriver,框架如下图所示。


User Interface(用户交互层):提供给用户所有的界面操作API(H5界面及小程序界面),使用者不需要关注框架内部实现,只需要关注自身业务逻辑流程(手工用例流程转换成自动化流程)。


PageOperator(操作解析层):主要用于接收和解析用户命令后传递给下层Engine层Engine( H5&小程序引擎层): 将用户命令传输到手机,并返回结果信息。封装WebSocket和单线程池,通过WebSocket Debug URL和浏览器内核建立链接,发送Json格式的协议到手机端进行用户指定的操作。

      

搭好了架子后,开始逐步填充功能,调试,优化,FAT(Fast-AutoTest)框架的内容也逐步越来越丰富和完善;并且在团队内的多个产品中进行验证和打磨,不断提高框架的易用性和稳定性。


我们的优势

(1)全面支持微信H5页面,能识别常见H5控件,能获取页面任意内容(常见的如文字、图片、链接等);


(2)全面支持小程序内控件识别,操作,页面内容获取等;


(3)支持基础的性能测试监控;


(4)支持安卓Native页面组合操作使用;


(5)简单的API设计,使用门槛低;


(6)提供日志等级开关,方便调试定位。


与业内工具对比如下:

那么如何选择适用于自己项目的工具呢?


如果自动化测试的重点主要是在web页面测试,如手机chrome页面测试或微信页面测试,自研FAT框架在稳定性、易用性还有兼容性会更出色;如果自动化测试的对象是Hybird App,主要集中于Native界面的测试,兼顾web页面测试的话,使用Appium会更合适。



团队收益

1、使用框架,能快速完成用例到脚本的转化。快速上手,编写简单,即使是没有编码经验的同学也很快学会,我们团队的手工测试的外包合作伙伴经过一个用例的练习后,就能独立完成编写和调试工作,基本功能用例能逐步自动化代替,节约回归时间。


2、初步做过编写脚本时间估算。单个操作步骤用脚本实现花费约40s(打开页面5+Chrome抓控件5s+找目标控件Xpath 15s+写脚本15s),一条10个步骤的用例,用脚本实现时间400s,一次编写,终生可用,投入产出比还是不错的。


3、经过在团队内各产品的逐渐铺开使用,在效率和质量上都有逐步提升,相关页面覆盖度也在逐步完善中


何获取FAT呢?

目前我们的工具正在走开源的流程,不久之后大家就可以免费使用FAT了,大家敬请期待,多多关注TMQ的相关资讯。


欢迎给测试窝投稿或参与内容翻译工作,请邮件至editors@testwo.com。也欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,并与我们的编辑和其他窝友交流。
238°|2388 人阅读|0 条评论

登录 后发表评论
最新文章