- 1 - 

 缘起 

2011年初,在国外的一个网站上看到一篇关于云测文章的介绍,突然意识到这是一个大有所为的市场,然后游说老板和并开始实施demo版,后来老板因为觉得我们有更重要的事情做,而且这是一个小众市场,就不了了之,后来心有不甘,完成一篇关于云测平台的专利提交。

2017年加入京东金融,进行移动端测试与探索,做了一个简单的系统,支持自动化和客户端性能测试,通过调用执行云设备管理的设备。就在这时,有个国企要采购云测项目邀请参加POC,和领导商议后,觉得这事可以搞。通宵达旦的搞4天3晚上,按照POC要求优化了管理后台的功能和界面,以及后台云设备设备管理端,较好的完成了此次POC,领导也很满意,借着公司对外赋能的东风,开启了京东金融云测平台工具建设之路。

- 2 - 

 京东金融云测平台架构 

移动端测试解决方案主要包含四部分内容录制回放、测试管理、测试服务管理、云设备管理。当用户使用平台时,首先通过录制回放模块录制脚本(也可以手写脚本),提交或者上传到移动端测试管理中的脚本管理中,按照业务进行测试脚本和测试数据配置,组织测试用例、测试场景、测试任务,然后选择对应的App包,通过选择执行测试服务内容提供的测试服务类型,调度执行运设备管理上的设备进行执行,执行完成后将测试结果反馈到测试管理中的结果呈现管理模块。

2.1录制回放

录制回放模块,当时最主要的目标是对标竞品,根据对外赋能需求支持的模块,录制回放参考了很多PC时代录制回放的优点,同时结合不同厂商使用工具的特点,进行了一系列能力的扩展和优化。

在脚本增强方面,除了支持顺序、分支、循环三种结果体,还增加了参数化、检查点(文本、图片、表格等)、脚本段(事物)等方式的脚本优化。

为了适应不同公司和厂商的习惯和要求,低成本的移植和嵌入到现有工作流程,在录制回放中制定了一套标准的语义规则,方便把录制回放的脚本快速转换成主流的appium、Uiautomator、 Robolectric等脚本语言。平台也支持以上三种工具的标准脚本的执行和调度。

录制回放的框架使用Uiautomator作为底层的组件及对象获取,通过minicap、minitouch进行信息流的交互和转换,实现Android平台的录制与回放的基本功能。因为篇幅限制更多技术细节不在此详细赘述。

2.2测试管理

测试管理主要是对测试资产进行管理,包含测试对象、测试脚本、测试数据、用例的组织方式、测试结果进行管理;

测试对象主要是对应用安装包的管理,包括应用包的上传下载、应用包的版本信息和开发者信息等。

测试结果呈现主要是各种测试结果进行聚合呈现,分类分析,方便统计和分析测试执行情况,质量发展趋势等。

测试脚本主要是录制回放的脚本或者根据框架提供的demo编写的脚本,支持脚的上传下载和git地址自动打测试包的方式。脚本管理对脚本版本管理做了严格的区分,方便制定不同的执行策略,并减少自动执行时的出错几率。

测试用例和测试数据是测试最核心的资产之一,测试用例和测试数据管理是检验工具平台是否好用的最主要标准之一。京东云测平台测试用例组织主要有测试步骤、测试用例、测试场景三部分,测试数据也对应的有三部分,基于测试步骤的业务数据、基于测试用例的依赖数据(包含测试步骤之间的依赖和用例之间的依赖)、基于测试场景的参考数据、基于运行或者执行环境的全局数据。

业务数据:业务数据,顾名思义,就是与业务相关的数据,主要是为了完成某项业务而准备的数据,业务数据与业务密切相关,比如登录,必须有账号和密码等信息、信用卡开卡必须填写身份证证明信息、个人以及卡属性相关信息。这些信息和数据都是密切和相关业务绑定。

依赖数据:简单的理解为完成某一项业务,而必须依赖上一个业务或者前置业务产生的结果数据作他的输入,我们称之为依赖数据,包含测试步骤之间的依赖和用例之间的依赖。比如存钱业务,先需要依赖银行卡号等。

参考数据:参考数据是针对测试场景而提供的一个功能增强的便捷功能。比如登录有多种场景,账号密码登录、一键登录(微信、微博、京东)、人脸识别登录、手机号码一键登录等等。在测试时需要准备不同的数据,为了方便测试,提出了一个依赖参数,比如可以每个场景关联一个sql语句,实现场景与数据的关联,方便进行测试。

全局数据:和各种语言中的全局数据一样,主要是方便配置和灵活迁移执行,比如测试地址,测试环境、公共账号等信息。

2.3 测试服务管理(测试类型支持)

测试服务管理,提供统一的接口方式,以服务化的方式接入各种测试类型,如App自动化测试、App性能测试、App标准兼容性测试、稳定性测试(Monkey、自动遍历)、安全测试等等。

稳定性工具&monkey测试工具

Android端通过Android SDK提供的命令行工具,iOS端利用XCTest单元测试和Facebook的 WDA,实现Server-Client架构(C/S)的消息通信。发送伪随机的用户事件流。

自动启动App向系统发送大量、连续、随机的用户事件流,如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试,跟踪日志输出,查看是否会出现崩溃,无响应等问题,以此监控App稳定性。

自动遍历:

APP运行过程中,通过Android SDK获取APP当前页面上所有的可点击元素,依次按照策略(深度遍历算法或者广度遍历算法)点击每个可点击元素,并记录新页面。通过算法对元素和新页面进行记录并去重。当前页面遍历完毕后,重复之前逻辑,依次遍历记录的新页面。

自动化遍历工具为在非人工干预的情况下,通过按指定级别,依次点击APP上所有可点击的元素,并记录点击过程中的崩溃、错误、黑白屏、异常日志等数据。

自动化测试工具

通过自动化测试框架和辅助工具,获取App页面上的控件信息和属性,按照预定的手动测试意图,利用系统支持的功能,编写线性执行的测试脚本,执行用户事件流,以替代手工重复的业务功能测试工作。

性能测试工具

APP运行期间,通过命令和内嵌SDK方式获取APP的资源消耗信息。

APP性能测试工具主要为了检测应用在执行期间的性能消耗,包括CPU、内存、耗电量、流量、启动速度、跳转速度等,保证APP在重大功能发布以及版本迭代升级中,不影响用户体验。

2.4云设备管理

云设备管理,就是对手机进行集中式管理,通过Android SDK提供的命令行工具,iOS端利用Facebook的 WDA,在借助与minitouch 、minicap实现Server-Client架构(C/S)的消息事件流的通信。进而实现从web端访问云端手机设备,以达到设备资源利用率最大化。

设备管理在移动端测试中也没有很好的利用起来,分析了下主要有以下几个原因

1)设备不足,显得工具华而不实,之所以作为一个平台,也具有集装箱原理,需要有足够的设备,一般的公司设备都是比较少或者“刚刚够用”,这个时候建设一个云测平台就会影响整个效率。

2)效率问题,云设备管理,使用过程中需要频繁上传、下载、安装、测试等,这个过程比在本地测试需要的的时长增加不少,使用起来感觉也不是那么流畅。

3)稳定性,云设备平台遇到最大的一个问题,就是长时间使用会导致莫名其妙的链接中断,导致维护成本过高。

4)兼容性,在新加入设备时,需要对各种接入工具进行设配,工作量对于一个普通的业务团队来说是巨大的。

- 3 - 

 实践中的一些思考与建议 

录制回放功能虽然现在很鸡肋,但随着图片识别技术、人工智能的发展有可能会有一个大发展。在实践过程中曾经想过通过设计原型稿和手机展示的界面,通过分层切图进行比对识别,做兼容性测试,但因为人力成本问题没有完成,但我觉得这个应该是未来发展的一个方向。

测试管理部分,用例和数据的组织方式,设计时追求完美,但在实际使用过程中略显繁琐,当然这也和互联网业务相对较为简单有关系。工具和平台真正要好用,需要不断的修正磨合。

测试服务管理中的工具模块,工具只是提供一种能力,如何使用是需要测试工程师在工作中不断思考和调整。后续会专门写一篇相关文档说明,在此推荐各位阅读《深入学习自动化测试看这里就够了!!!》。

云设备管理,通过实践个人觉得私有云的方式可能符合中型规模团队(30-50人),这样可以克服上文提到公有云中的效率和稳定性的问题,目前这种方案团队正在实践中,需要进一步验证实践。文章来源:MiniStarClub北京,致力于提供最具价值的测试、测试管理及个人成长领域原创文章。包括测试技术、测试方法、测试思想、测试管理及个人成长等。

· 推 荐 阅 读 ·

RECOMMENDATION

京东金融移动端测试实践

团队管理与个人成长文章汇总

你需要的测试策略都在这里!!!

深入学习自动化测试看这里就够了!!!

深入理解自动化测试基本原理和框架设计

打造用户满意的产品|互联网测试的初探

全面的质量保障体系之回归测试策略

京东金融App端链路服务端全链路压测策略

UI自动化应该实施哪些内容?

《高绩效成果教练》课程笔记及思考

基于业务分层的测试策略

基于风险的测试策略

高效学习之五星笔记法

你点的每个“在看”,我都认真当成了喜欢!

京东金融云测平台方案相关推荐

  1. 京东金融云测平台方案揭秘

    本文作者:京东数科 薛亚斌 文章来源:"京东数科技术说"微信公众号 原文链接: https://mp.weixin.qq.com/s/oxy1SKsjUCZIgjjKO7OiGg. ...

  2. 京东金融云发布了,这和人工智能有什么关系?

    前两天,JDD-2017京东金融全球数据探索者大会召开.JDD大会将通过论坛.大赛等形式,为行业挖掘发现人才,将技术.场景与数据相结合,加快AI等前沿技术落地于金融等行业,解决实际问题.JDD当中的J ...

  3. 华为云测平台服务再升级!华为M5系列平板调测能力正式上线!

    ​​​6月1日,华为M5系列平板设备兼容性测试和远程真机调试功能在华为终端开放实验室正式上线!助力您的产品在大屏适配上快人一步! 华为终端开放实验室DevEco平台现已提供基于华为M5系列平板设备的兼 ...

  4. day04-Testin云测平台操作

    1.注册Testin 2.登录Testin云测平台 3.填写信息 4.点击标准兼容性测试 5.点击开始测试 点击上传应用 选择文件 上传成功点击下一步 填写任务描述,选择设备类型,点击下一步 点击查看 ...

  5. 云测平台(只供参考)

    第一步:搜索云测平台,点击出来的第一个 第二步:点击注册或者登陆我这里是第一次使用所以我点击的是注册 第三步:填写个人信息 第四步:查看主页面 第五步:点击标准兼容测试 第六步:点击开始测试 第七步: ...

  6. 云测平台进行软件兼容性测试

    1.百度搜索云测平台 2.登录云测平台,没有进行注册 3.完善你的信息 4.点击测试管理---->应用管理,点击上传文件 5.选择你要上传的app 6.等待上传文件 7.上传完成添加对应的信息- ...

  7. OPPO新版云测平台使用教程

    远程真机入口 进入管理中心 按照下图导航点击"管理中心",进入管理中心页面 进入云测服务页面 在管理中心点击"云测服务",进入云测服务页面. 进入真机页面 在云 ...

  8. Testin云测平台(六)

    Testin 一.Testin简介 二.测试范围 三.操作步骤 ***1.打开平台*** ***2.登录进入控制台*** ***3.菜单-标准兼容测试-开始测试*** ***4.上传应用*** *** ...

  9. Testin云测平台操作步骤

    1.登录 2.点击标准兼容测试 3.开始测试 4.上传应用 4.1.选择文件 4.2.等待加载完成 4.3.完善应用信息 4.4.上传完成 5.补充测试选项 6.提交测试 7.查看报告 8.测试完成, ...

最新文章

  1. Exchage 2007 Client Application Functions(2) -- 如何收取邮件
  2. 一年融4轮,虎赞科技完成红杉领投3000万美元B轮融资
  3. boost::histogram::accumulators::count用法的测试程序
  4. lamp不解析php,lamp环境无法解析php环境
  5. HttpClientFactory 使用说明 及 对 HttpClient 的回顾和对比
  6. toolStrip 按钮图片大小的修改
  7. 趣文:如果编程语言是车
  8. git for windows_手把手教会舍友玩 Git (包教包会,再也不用担心他的学习)
  9. Dataphin的代码自动化能力如何助力商业决策
  10. vw vh vm CSS长度单位
  11. 基于python实现的电影推荐系统
  12. XMind 2022 使用教程
  13. 《华林科纳-半导体工艺》PVA 刷擦洗
  14. 木耳炒什么好吃 木耳的做法
  15. 处理png图片为透明
  16. 微信小程序开发之——个人中心-个人资料修改(7)
  17. mysql5.7 优化 三
  18. HTTP中get和post方法的区别
  19. 数据留存的计算-sql boy必备
  20. K-means与高斯混合模型

热门文章

  1. 【One-hot编码】
  2. 大众车联网测试工作总结
  3. 在数据分析、挖掘方面,有哪些好书值得推荐?
  4. MySQL笔记(黑马一)
  5. 基于人脸识别和图像分割技术制作证件照
  6. 光谱基础知识__多光谱相关笔记_未整理
  7. 循序渐进学Linux,一线Linux专家南非蚂蚁学习经验谈
  8. “手机分期付款”申请评分卡模型报告
  9. 概念模型、逻辑模型、物理模型。
  10. 【日本雅虎新闻推荐】:Embedding-based News Recommendation for Millions of Users(附开源代码)