微信号:gh_1cb598337696

介绍:Qtest,是360公司唯一的服务端测试团队.我们的理念是做一个会编程的测试工程师,做一个不断思考,全力保证产品质量的测试工程师.

你的SDK够稳定吗

2018-11-21 18:41 小学生

点击蓝字关注这个神奇的公众号~


一个业务在功能比较成熟之后,其性能指标就要作为重点之一来关注。因为性能指标的高低,会直接影响产品的体验。比如在SDK的测试中,CPU和内存就是普遍关注的两项指标。如果我们提供给业务的SDK是CPU和内存高消耗的,那么在业务方接入SDK并投入使用后,一定会反馈卡顿、内存增长过快等问题。所以我们在测试过程中,不仅要关注功能,也要重点关注各项指标是否稳定。否则即使功能达到了预期,性能没有达到正常使用标准,这一样是个不合格的产品。

我们团队是为公司的视频业务提供SDK功能,作为视频类的业务,自然对CPU、内存等指标要求就更为严格,否则我观看或者下载一段视频,就要增长几百MB内存的话,那简直是个灾难。下面就根据自己的业务来讲述下我们团队关于SDK的CPU、内存是如何展开自动化测试的。


一:UI自动化,执行测试用例

一个应用会有很多个模块,每个模块也有不同的场景。而每个场景只要有请求,基本上就都会消耗CPU和内存。所以根据不同的场景,我们设计了一组测试用例,并通过Appium服务提供的API,来自动的执行测试用例。下面红框中的代码,就是一条测试用例,也就是当这条用例执行完,SDK的CPU和内存消耗就会发生变化,这个时候我们去把CPU和内存数据存储到数据库中,最后当这个应用的所有用例都执行完成后,我们就会统计出这个应用在使用过程中,CPU和内存消耗的走势情况。如果走势平缓,说明SDK比较稳定。如果出现陡增或者陡降的情况,那我们就要根据具体的场景来分析并优化,否则这个SDK给到业务,也是不稳定的。

二:数据查询

上面我们已经把应用的主要场景的测试用例执行一遍,并且产生了CPU和内存的数据,存储到了数据库中,那么这些数据要传到前端之前,首先要写一些服务端的接口。如下图一,(Model层大家自己查询下,如何操作数据库的)是Controller接收前端传递参数并调用Model层后返回具体的数据(第一条是CPU的数据,第二条是内存的数据)。图二是获取内存数据的一个接口文档



三:前端页面展示

   幸好我们团队有几位小仙女,不仅人长得美丽,竟然还会写前端。这样我们所有的统计数据就可以以详细报告的形式展示到前端页面。我们将已经写好的服务端接口供前端调用,这样整个测试从UI自动化到服务端接口最后展示到页面上的主要工作基本完成了。比如下面的这个曲线图,就是根据时间,来查询该时间段内,某个SDK版本的CPU和内存的增长趋势


经过上面的三步,UI自动化执行用例、服务端操作数据库、前端调用接口,我们就把某个应用的CPU和内存的数据获取到了,并且以曲线图的形式展示到了页面上。

线图,我们可以很明显的看到以下两点:

1)在某个时间段内,SDK的CPU和内存的消耗走势情况

2)同一个SDK版本,CPU和内存的消耗走势情况

通过观察走势图的平缓程度,我们可以基本确定SDK的这两项指标是否符合产品的要求(PS:这两个指标是验证SDK是否稳定的其中一个重点,但并不是全部,后面我们会从其他角度继续展开)


说明:部分敏感信息未显示,希望大家谅解!

上面是我们团队工具平台上其中一个自动化测试的工具,各位在平时也可以根据自己测试业务的特点,写一写自动化相关的工具,工具大小不重要,重要的是解决一些重复的工作并且可以提升测试质量和效率即可。大家有什么意见欢迎留言!


Qtest是360旗下的专业测试团队!

是WEB平台部测试技术平台化、效率化的先锋力量!


陪伴是最长情的告白

每日为你推送最in的测试技术

识别二维码

关注我们


 
Qtest之道 更多文章 测试兵器谱の浅谈框架 Appium+IOS+Java真机自动化环境搭建 探究PHP_CodeSniffer的代码静态分析原理(一) 浅谈Android流畅度 测试兵器谱の移动测试篇
猜您喜欢 位换记号、排列测试与状态图:杂耍中的数学 API 调用次数限制实现 【面试题】2018 年,去百度面试 Java 后端的一次面试经历! 把C++当脚本语言写! 给飞驰的法拉利换引擎 - 谈边做业务边做架构重构(2)