我们为什么要做 SoloPi
SoloPi现状
去年(2019年)7月份,蚂蚁集团正式对外开源了客户端自动化测试工具 SoloPi ,其主要包括三大模块:录制回放(用于功能测试)、性能工具(用于性能测试)以及一机多控(服务于兼容性测试)。从开源至今,我们也陆续收到了公司内外对工具的不同声音,有的同学对这套工具能提升测试同学的效率表达了支持态度,也有同学认为脱离了代码的自动化测试可能会限制测试同学的灵活度,让这种模式很难走远,还有同学认为这套工具只是昙花一现,简单包装了一下PC上的工具,而缺乏实际的创新。
其实,这套工具我们从17年开始研发,至今已经有三年的历史了,最开始SoloPi本身只是一个性能测试工具,随后逐步扩展成涵盖功能测试、性能测试、兼容性测试、异常测试、Mock测试等一系列移动端测试场景的测试框架,这一路走来,SoloPi就像我们的孩子一样一步一步地成长,稳步且有计划的前进着。
回想当初,SoloPi最开始想解决的诉求很简单:测试很麻烦,我们想要更简便的测试方法。所以,我们从当时最麻烦的性能测试入手,以往的性能测试工具,无外乎三种形态:PC驱动工具、侵入式的测试模块、ROOT工具。
PC工具:除了Android Studio自带的性能测试工具,市面上大多数文档都是介绍命令行方法,而且各家方案存在差异,不少还存在错误,实际成型的工具也不多。
侵入式的测试模块:这类工具由于需要侵入到源码中,需要单独打包进行测试,工具本身也可能对性能产生影响。
ROOT工具:首先是需要Android系统的Root权限,对于权限管控越来越严格的Android系统,其路必将越走越窄。
为了解决测试同学性能测试难、标准不统一的问题,我们尝试从Android调试能力入手,研究一种能够在Android手机上不需要root也能实现应用提权的方案。经过长时间的研究,我们最终发现了一套通过Java实现的ADB远程调试方案 (https://github.com/cgutman/AdbLib) ,这套方案与Android调试端口进行通信,通过本地Socket方式实现shell权限的获取,从而达到本地应用提权(下述简称无线ADB提权方案)。
结合无线ADB提权方案,SoloPi针对每一种性能指标,进一步实现了对应的精确获取方案。测试同学不需要再费力搜寻/开发/优化性能测试工具,只需要一个SoloPi,短短几分钟即可快速完成以往动辄数小时的性能测试工作。
在性能测试领域得到应用后,我们继续扩展SoloPi在无线自动化方案的适用范围。这次,我们关注点是功能测试领域。传统的功能测试通常有两种方式:一种是人工手动执行测试,另一种则是编写基于测试框架的自动化脚本。前者成本巨大,为应付不断加速的产品迭代可能需要投入大量人力;而后者则对测试同学的代码能力有不小的要求,这也导致由手动测试转化为自动化测试从而节省人力的进度相对缓慢。结合我们在性能测试方面积累的经验,我们尝试将传统上仅能用于PC的自动化测试能力移植到了移动平台,并根据手机的使用习惯,开发了一套简单易用且功能强大的自动化测试框架,也就是当前的录制回放。通过录制回放,我们可以自豪的说,我们能够节省功能测试高达70%的时间。
在功能测试的方案完成后,我们又对这套自动化测试框架有了更多的期待。由此便诞生了一机多控这样一套兼容性测试利器。关于一机多控,最开始源于一次闲聊,如果将录制回放的过程拆分开,一台机器录制用例,由其他几台乃至数十台机器进行回放,不就能够极大地降低兼容性测试的成本。以往兼容性测试一直是无线测试的老大难问题,通过一机多控,就能实现指数级的提效。通过在测试机房环境的部署,我们已逐渐培养起测试同学通过一机多控进行兼容性测试的习惯。在支付宝内部实践过程中,曾有一位测试同学反馈,没有了一机多控甚至不知道怎么测兼容性了。
为了进一步降低广大从业同学的测试成本,我们继续就整个研发流程进行挖掘、优化,并已在一些节点(如数据准备、异常场景、小程序H5等)上尝试和发力。围绕着测试提效的核心,SoloPi不断地为节省人力成本开发和更新着一系列的测试工具。
SoloPi未来趋势
随着测试技术的不断发展,智能化、简单化的测试趋势日益明显,以19年MTSC大会为例,有超过半数的议题都与AI相关,围绕测试提效的核心,我们也将在这方面进行进一步的挖掘,将AI+测试带给每一个从业人员。
在我们开源的这一年间,我们也发现了游戏领域从业人员对类似工具的诉求,目前SoloPi仍然是以支持传统应用的测试能力为主,所以我们也将在游戏场景做进一步的融合,我们希望能够对类似Unity 3D、Cocos2d-X、虚幻等引擎做进一步支持,从而也能更好地降低游戏测试成本。
SoloPi不仅仅是一个移动测试领域的工具,我们更希望它是一个服务于广大测试从业人员的产品。同时,我们也一直在思考着一个问题:如何能进一步降低测试同学的学习和使用成本?在今年下半年,我们计划推出一套更加轻量化的测试方式,能够真正让测试同学像正常使用应用一样进行测试,做到真正的智能化和简单化。
原文链接
本文为阿里云原创内容,未经允许不得转载。
我们为什么要做 SoloPi相关推荐
- 类似美团外卖APP测试怎么做?测试要点有哪些?
随着智能化生活的推进,APP外卖带来新的餐饮模式.目前市场上比较活跃的比如美团外卖.饿了么外卖.百度外卖等为餐厅提供外送服务的APP已经深入影响人们的生活.由于外卖APP使用人群范围广泛,对客户信息保 ...
- Android测试solo,SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手
SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手 SoloPi:支付宝开源的 Android 专项测试工具的介绍与快速上手 MTSC2019大会上,Soloπ算是一次正式的在公众 ...
- 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi
目录 APP测试要点 目标 一.APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二. 性能测试工具 ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...
- 力所能及的做些自己喜欢和有趣的事
我们每个人都有自己喜欢做的事:在自己可控且力所能及的情况下,在闲时,按自己的意愿去做些自己喜欢和有趣的事,会感觉到这事很有意义.在忙时,要为理想和奋斗而忙:不浪费时间在无意义的事和人身上. 朋友要的是 ...
- tensorflow学习笔记(四十五):sess.run(tf.global_variables_initializer()) 做了什么?
当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数.那么,它到 ...
- LeetCode简单题之在既定时间做作业的学生人数
题目 给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间. 已知,第 i 名学生在 startTime[i] 时开始写作业 ...
- 用Micro:bit做浇灌系统
利用Micro:bit结合[土壤湿度感测棒]做一个简单的浇灌系统 一.测试土壤湿度感测棒 •材料:土壤湿度感测棒 (万能的淘宝上可以找到) •连接:将[土壤湿度感测棒]的一端接P0.另一端接GND 简 ...
最新文章
- PyTorch框架:(5)使用PyTorch框架构建卷积神经网络
- bzoj 4836: 二元运算
- div+css中常见的问题
- Django视图层:视图函数、视图类
- GDI+入门——带你走进Windows图形的世界
- 【源码】基于MPPT算法的混合风能太阳能系统建模与仿真
- 更改 Normal 模板 (Normal.dotm)
- 关于java的文件操作
- xp升级到win7傻瓜教程_最简单xp一键升级win7重装
- 搜狗Sogou拼音输入法,搜狗高速浏览器(IE浏览器内核)
- 5.2 网络数据Excel存储
- 微信分享点击回到原APP却仍然留在微信的问题
- 全球通史读书笔记上(第七章——战争的起源)
- 访问虚拟机上的本地网站
- git push问题:kex_exchange_identification: read: Connection reset by peer
- QQ聊天记录丢了怎么恢复
- 关于GPRS(cmnet、cmwap)和CDMA 1X的比较及最优方案
- 180912 其它-实习总结
- 企业实战-Kubernetes(十四)k8s高可用集群
- 创新云集 携手共赢—— 2018 Oracle NetSuite 中国峰会首度开幕,智驭云端生态未来
热门文章
- 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构
- 金山手机控usb调试模式开启工具_话筒坏了无法连麦?一招手机秒变电脑麦克风...
- long mode 分页_在Spring Boot中使用Spring-data-jpa实现分页查询(转)
- windows无法检索有关这台计算机上的磁盘信息_磁盘镜像软件OO DiskImage Pro 15.5介绍及安装教程...
- mysql带参数的sql_MySql存储过程是带参数的存储过程(动态执行SQL语句)
- spi四种工作模式时序图_还没学会SPI总线协议?干货都在这里
- 袁亚湘院士谈如何做好研究生:要逼着自己去想问题,最大的浪费是聪明人不思考...
- 一个程序员的水平能差到什么程度
- 复旦教授:不打不骂不罚是培养不出优秀孩子的!值得一看
- 国内高校简称撞车史:南大、西大、东大都在争 唯独北大没人抢