Julylulu 2016-09-27
9月24日,由魅族与msup联合主办的第五期魅族技术开放日“构建适合你的自动化测试体系”在深圳弈投咖啡举行。魅族测试部技术开发组组长王照辉、原惠普中国自动化测试工程师高焰、腾讯架构平台部质量工具体系负责人刘卓夫进行自动化测试的分享,与现场听众共同探讨自动化框架的演进以及自动化测试发展过程中曾遇到的问题和解决方案。
《魅族自动化测试架构之路》
活动当天共分为3堂课程,首先由魅族测试部技术开发组组长王照辉对魅族测试框架、魅族自动化发展阶段以及魅族ATS平台进行介绍分享。
(魅族测试部技术开发组组长 王照辉)
魅族测试的两个主要框架
魅族主要使用UIAutomator和Monkey两个框架进行自动化测试,两个框架均为系统原生支持的框架,不需要对系统修改或安装其他应用。
UIAutomator主要用于回归测试和冒烟测试,如验证APP的功能是否正常,流畅度和待机耗电等情况,Monkey用于做长时间的压测,如检查7*24小时的压测是否出现崩溃的情况。
魅族自动化测试发展的5个阶段
魅族自动化测试第一阶段通过守护APP+WEB的形式实现了人性化的报告输出、错误的监控和与缺陷平台的无缝对接,方便测试人员查看与分享报告并简便的追溯Bug来源。具体实现方式是由自动化脚本提供操作步骤、期望、结果,然后由守护APP提供录制、截图以及对崩溃、ANR和Log的收集,最后到平台上做结果展示,对于自动化过程中出现的异常与缺陷平台数据相关联。
第二阶段通过一些审核、预编译这样的操作来打包依赖并提高脚本的稳定性。首先规范了整个编译的描述文件并打包依赖资源,由Gerrit服务器进行代码的审核,审核通过后由Jenkins负责打包编译并将JAR包上传至平台,运行时通过守护APP拉取这些脚本,最终调用执行。
第三阶段主要通过一些模块的配置来解决不同机型和版本之间的依赖问题,通过参数扩展脚本的适应性,在这个阶段之后,已经不需要在脚本中做逻辑判断来适应机型或是不同的固件版本。
第四阶段的解决方案,比较抽象的提出了“设备池”的概念,实现了完全无人工干预的自动化。
第五阶段提出了任务类型的概念,主要做专项的测试,如稳定性测试、性能测试、升级测试、安全测试等。能够有效的补充UI自动化的不足,从不同角度检查包括性能、流畅度和安全方面是否存在问题,进而在不同的维度阐述产品的质量。
魅族的ATS平台
在自动化测试研究过程中,魅族的测试团队遇到了各式各样的问题,如最开始的初始条件和脚本稳定性,后来需要集中资源,再后来需要专项测试,希望有一个统一测试的平台解决此类问题,由此,魅族开发了ATS平台。ATS平台整合了固件的UI自动化的测试并包含了压力、性能、安全等各方面的专项测试。
ATS平台主要由在线列表、任务管理、报告查看等功能组成,测试体系人员都可以通过平台对一些特定的APP进行特定场景的测试,比如UI测试、稳定性测试和性能测试等等。
王照辉认为,一个比较理想的自动化,就像一个全自动的黑盒子,为上游提供接口、为下游产出有意义的报告。
《基于Cucumber的BDD的自动化测试平台》
在王照辉的分享中,不断提到UI测试的难点,而在本期技术开放日的第二场分享中,原惠普中国自动化测试工程师高焰带来了针对UI自动化方面的分享,主要讲解基于Cucumber的BDD的自动化测试平台。
(原惠普中国自动化测试工程师 高焰)
高焰提到,代码、用例、脚本和测试数据的关系、维护等是自动化测试的几大难点,除此以外,平台越来越多、技术越来越多,每一个都要学,每一个都要去维护。
BDD现在对Cucumber的官方解释是行为驱动开发,讲师喜欢将其理解成业务驱动开发,它是站在业务的层面。Cucumber的自动化脚本看起来像一段文字描述,维护相对容易。Cucumber分为技术和业务层,相互之间有映射关系,让技术人员有更多的精力覆盖业务点。
在讲师的分享中,对Cucumber的特点、工作原理、能够解决的问题以及应用案例等方面进行了讲解,Cucumber平台可以实现对测试脚本、业务场景及功能点的集中化管理,使用中文来编写脚本易于维护和理解,并且可以降低后期脚本的维护成本。
《现网拨测 -- 自动化测试后移实践》
在高焰老师的分享之后,由腾讯架构平台部质量工具体系负责人刘卓夫带来了本期开放式的第三场分享:关于腾讯视频直播业务的自动化测试实践。
(腾讯架构平台部质量工具体系负责人 刘卓夫)
2016年,音视频行业呈现爆发式的增长,刘老师所带领的团队需要从传统存储业务的测试快速过渡到音视频业务。在应对挑战的过程中,刘老师产生了一些新的思路,由此产生了本期开放日分享的主题《现网拨测 -- 自动化测试后移实践》。
腾讯视频的点播有一个内容分发系统,所有点播的片源会从这个分发系统逐级分发,全国都有接入点,所有媒体文件都逐级分发到每一个接入点,我们也可以从就近的接入点做访问。面对成千上万台现网设备的拨测,先从全网调度系统里面去拉取全网正在做服务的列表,以最新的列表作为测试的测试源。对于某一台单机,我们也不是从一个结点去测,而是通过多个结点测试出现问题才认为是单机出了故障。
刘老师通过花屏、卡顿、VOIP等场景列举了腾讯自动化测试的方法,整体设计思路分前台和后台两个部分,前台主要是通过Django和nginx、uwsgl和mysql来做。后台通过执行器进行自动化测试,主要包括资源加载、资源分配、拨测逻辑和结果统计四个扩展点。
以上为本期魅族技术开放日讲师分享的摘要内容,3位讲师从自身对自动化测试的经历与认知出发,解读自动化测试的工具、方法和演进过程。这是魅族技术开放日的第五期,也是魅族与msup合作举办的第三次技术开放日活动。魅族与msup都希望能够以开放的心态,让更多人参与到技术分享的活动中来,融入技术大家庭,打造国内技术人员的交流分享平台。
开放与分享逐渐成为国内技术开放日的主流心态,msup主办的第5届TOP100全球软件案例研究峰会将于12月9日在北京国家会议中心举行,目前已有Twitter、微博等国内外多家互联网企业提交了年度案例。TOP100全球软件案例研究峰会是是一场开放分享的盛会,互联网从业者可自主提交软件研发案例,入选后即可与近万名参会者分享。msup希望通过开放的技术盛会发现更多的优秀互联网研发案例,通过交流与分享,与技术从业者共同进步。
【第五届TOP100summit全球案例研究峰会案例征集中,如果在您心目中有非常合适的演讲人选,欢迎向组委会推荐。请发邮件至[email protected]。】
4.启动命令windows:chrome --remote-debugging-port=9222启动命令mac:Google\ Chrome --remote-debugging-port=9222