App本地化数据量测试

App本地化数据量测试

今天遇到一个有关App本地化数据量测试的case。敏捷项目、QA一名、短期项目、未搭建自动化、未引入性能测试工具、没有真实测试设备,用虚拟器模拟测试。在这种状况下,纯属徒手测试用户的性能需求,个人觉得比较典型,分享出来,希望能够和大家讨论一下,也希望大家能建议一些更好的工具或方法。

需求背景:

用户常常要在条件比较艰苦的地方连续工作很长时间,比如在没有网络的情况下,5个用户同时使用同一台设备,且连续工作5个星期,每个用户每天可以创建100条数据(数据包含文字、10张图片及1分钟音频)。因此要求APP必须支持本地化大容量数据存储。

测试目的:

1. 测试APP能否满足客户要求的本地化数据容量

2. APP本地化存储的临界值是多少

3. APP支持大容量数据存储时,性能有没有受到影响

测试设备:

1. Samsung Galaxy S Duos II S7582 DUAL SIM (ROM 16G)

2. Samsung Galaxy S5 (ROM 16G)

3. Lenovo A10 tablet (ROM 16G)

思路分析:

接到需求时,其实也是一脸懵逼,不知该如何去测试。尝试从以下几个方面做了分析,以求抽丝剥茧般的找出恰当的测试方法。

1. 设备是否支持扩展卡?

支持。

2. APP是否支持扩展卡存储?

不支持。

3. 单条数据Size有多大?

获取单条数据的Size很简单,利用Android本身自带的APP信息来对比创建数据前后的大小差。(这里我采用用户最习惯的数据填写方式,包含3张图片+1分钟Audio+部分文字)

App本地化数据量测试

由此可见,一条数据的大小为1.2M。

3. 设备本身的ROM能否满足客户的最大数据量需求?

本地化数据存储容量的大小在一定程度上依赖于设备本身的内存。这里提供的设备ROM为16G,支持扩展卡,但APP本身并不支持扩展卡存储。

客户需求的数据为:

数据量 = 一条数据的Size * 数据条数 

            = 一条数据的Size * (用户数*单个用户每天的数据条数*天数) 

            = 一条数据的Size * (5*100*35)条数据 

            = 一条数据的Size * 17500

            = 1.2M ** 17500

            = 20.5G

很明显,设备本身并不能满足客户所需要的数据量。这时候,我们就要考虑如何给客户提供一个可靠地最大数据量。

4.采用什么样的测试方法或工具?

要测试本地存储的最大数据量,就要在设备上创建大批量数据,有几种方法:

(1). 手动创建数据: 这是最笨最不可取的办法,估计挂掉几个QA,数据依然不够。

(2). 自动化创建数据:短期项目未搭建自动化,即便搭建了自动化,End to end的测试本身就有一定的耗时,若要创建满足大批量的数据,很可能要持续24小时以上。倘若没有性能工具和状况良好的测试机的支持,很可能设备挂掉了,数据依然不够。

(3). 创建一条标准数据,然后通过测试脚本循环进行复制:通常QA编码能力有限,不会写脚本怎么办呢?这时候敏捷的优势就体现出来了。可以与团队中的Dev Pair来进行测试。脚本由Dev来写,测试由QA来执行。

思路实践:

1. 与Dev Pair编写测试脚本(因不变透漏项目信息,这里只粘贴部分测试代码)

复制数据的测试代码段:

App本地化数据量测试

复制照片的测试代码段:

App本地化数据量测试

效果:在页面创建一个按钮,点击弹出一个对话框,可以配置复制条数并一键复制。

App本地化数据量测试

2. 执行测试

(1).创建一条标准数据,查看数据的Size 

App本地化数据量测试

(2).复制9999条,总数到达10000条,查看数据Size(每次复制500或1000条,逐步增加)

App本地化数据量测试

App本地化数据量测试

结论:

1.因为设备内存限制,无法满足5个用户同时使用同一台设备,且连续工作5个星期,每个用户每天可以创建100条数据的需求,但可以支持同样用户,同样数据产出量时连续工作20天。如有更大需求,提议更换设备。

2.当数据量接近5000条时,APP页面加载速度逐渐变慢,出现卡顿现象,性能需要优化。

高手还有更加方案吗?快来和我一起讨论吧!