CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践 (2)

AIO 是箱庭和沙盒的结合。那么,什么是箱庭和沙盒呢?箱庭能够提供基础设施,相当于游戏里提供相应的陷阱、敌人或者宝箱,如何去获取或者击败由自己决定。而沙盒意味着把最小的原子单位开放给用户,典型例子有我的世界、乐高,最小单位就是一个 cube。声网的测试单位是基于 API,那么在整个交付里面,箱庭对应着保证基础设施(e.g:网络、电源,测试环境)稳定运行,至于沙盒则会拆分构建、测试、上线发布三个版块。

在声网一体化 AIO 架构里面,包含了一系列相应的 module。

CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践

AIO 架构包括了设备集群。因为不同平台交付必然覆盖各种各样的情况,需要考虑到不同设备的兼容性。调度中心确保所有设备在预期设定中如期交付,因此需要服务网关的存在。数据中心会分析 SDK 产物明确的 log 输出;最后一块是构建发布,ACCS 平台包括编译、发布、崩溃上报、数据分析、自动化测试等功能模块。下面基础能力代表着更底层的元素,如链路模拟、物理连接控制、人机交互等。

回到刚才所说的 Wayang 的特性,需要有一个 client 对应一个 demo。Client 表演者知道需要做什么,然后让 demo 去做相应的事情。基于这个情况,声网做了进一步的提升。通过 API driven test,声网设立了一个独立的 soloWayang app,里面的 test iterator 生成器可以不停地把测试 API 持续调用。通过基于 test farm 并发测试,在所有设备上跑 soloWayang,所有相应的 API 都会被测试以确保发现和处理问题。

在测试环节里面,会有非常多数据产生,包括 SDK data、demo data、test data 和 server data。如何去将这些数据做合理有效的预先挖掘?

CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践

传统模式下,数据的价值在于出现问题后去分析数据。逆转一下思维的话,如果能够对数据进行提前收集和预分析,就可以在问题暴露之前主动地去发现和解决风险。声网数据分析平台通过 Beats、Logstash 对不同平台的数据进行清洗,将无效信息剔除。Kibana 通过相应的过滤,能够把相应问题列举出来。举个例子,某个晚上跑了四百台设备,发现某台设备出现对应的 log 异常,通过 Kibana 可以进行预警,及时发现这个问题是否真的只有一台设备存在,或者在数台机器里都存在共性。以前通过人工的方式去挖掘几台设备的数据是否有相应的问题,很难联想到是不是与某一个系统有关、与某一个芯片有关,还是跟某一个特定的网络场景有关。通过数据分析平台的合理过滤,能够帮助我们通过种种证据的汇总来有效发现问题,尽早解决问题。

Q:针对于手机 APP 去做测试,如果需要上百部手机同时连起来,做一个性能测试环境。但一台电脑的支持能力是有限的,可能同时连接十几台手机就达到极限了,怎么去做横向扩展做性能环境?
A:如果是针对安卓手机的话, 我们有一台早期的节点同时连接了 30 台安卓设备证明是可行的,建议再确定一下节点和外设的配置。更多的机器连接可以通过采用集群的方式来部署 test farm。另外,可以在相应的 test app 应用中设计独立的性能测试组件,有利于实现性能测试的横向扩展。

点击获取视频和 PPT 资料

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypyys.html