随着移动设备的普及和使用范围越来越广,APP的性能测试变的越来越重要。比起之前的APP测试,APP性能测试有着自己的特色和KPI,难度也随之增加。
APP的自动化测试工具发展跟不上设备的发展速度,虽然有不少工具提供了设备模拟器来运行程序,但是和真机测试有较大差异,基本只能作为功能性测试使用。好消息就是,有些厂商提供了在线的真机自动化测试方案。
和传统测试的差异
1. 移动站点:和传统的只是一个普通的手机站不同(WAP站),随着HTML5的兴起和智能设备开放的传感器接口,移动站点很多时候很像一个APP,但依然使用的是HTTP或者HTTPS协议,从协议来说,很多测试和之前的WEB测试差异并不大。
2. 本地化APP:APP的测试最为复杂,虽然开发环境如DDMS XCODE都自带有一定性能测试测试功能,但主要是单APP运行时的性能测试,是在并发、压力等方面薄弱,且因为移动测试远不如传统测试发展的时间长,因此很多专项工具很匮乏,需要自动开发或者借助传统性能测试工具实现。
3. 混合型:APP加移动站的形式实现,很多移动端并不是单独的APP或者移动站点,而是混合使用,比如LINKEDIN的APP,本地化APP用来做UI,大量的内容是以移动站的形式放到云端, APP向网站请求网页数据,然后在APP端展现给客户。测试这类APP的时候,更为复杂,因为需要同时测试移动站和APP的。
移动端性能测试准备:
测试移动端性能之前,我们要先将要测试的内容进行抽象,抽象出两大类
1. 设备相关测试:虽然IT行业很重视跨平台、跨浏览器,但有些功能是需要强设备相关的,比如指纹、支付等。设备品牌不同、型号不同、OS版本不同、浏览器不同,其结果就可能不同。这对于性能测试是个很大挑战。
2. API测试(设备无关,抽象成API测试):APP使用API相互之间、和服务器之间进行交互,性能测试时,对这些API提取出来,并根据测试场景,分析其使用方法和压力情况,设计出合理的性能测试方法。API的性能测试和传统的API性能测试较为雷同。
测试设计
依据是否关注在移动端在真机的性能表现分为:监测APP在真机性能和不监测APP在真机性能。
不监测APP在真机性能:一般来说是需要监测APP在真机性能,但并不是全部的,上面我们有说过,有些是网页形式的,这时主要是测试移动WEB网页的性能, 而不是APP真机性能。
移动站点:测试移动站点的时候需要使用浏览器,但是浏览器和电脑的浏览器不同,需要使用移动浏览器来测试,中国市场的移动浏览器主要为:UC QQ 百度 360 谷歌浏览器, 海外市场的占有率请自行查资料。
测试移动站时,需要模拟移动浏览器,服务器是依靠HTTP请求头的”User-Agent”字段值来区分浏览器类型, 不同的浏览器其User-Agent是不同的, 有的测试工具可以自定义此字段值, 可以通过自定义此字段值来模拟各个浏览器.
移动APP: APP的各项功能都是一个个函数组成的, 将APP的功能抽象到API中, 通过脚本调用API来实现性能测试.
监测真机性能: 测试并发和负载的真机性能时,不可能使用大量的真机进行测试, 我们可以使用少量真机并配合自动化脚本. 用自动化测试脚本调用API或HTTP请求,形成大规模测试, 再使用少量真机访问服务, 记录KPI数据,并观测其反应. 各IDE和OS都提供了基本的一些性能检测功能, 能够满足一般的性能需求.