app性能测试

测试移动应用的挑战

做好性能测试,从来就不是一件简单容易的事。搭建与生产环境相同的性能测试环境一直是做性能测试的第一步,也是很重要的一步。然而,由于其复杂的架构,测试手机程序和**显得更加困难。要覆盖到不同种类(联网,本地和混合应用)、不同平台(iOS,安卓等等)和不同网络环境(Wifi,2G,3G,3G+,4G LTE)也是手机测试面临的一大难题。下面介绍一下几个手机性能测试相关的主要难题。

模拟移动网络的互联网连接

与桌面程序的高带宽相比,大多数手机用户使用的3G,3G+和4G LTE网络更慢,无线连接更差。性能测试要模拟不同手机网络的接入情况,这对性能测试人员来说并非易事。

移动设备种类繁多

市面上有成千上万手机厂商,每个手机厂商倾向于使用不同的操作系统和手机配置。而且,即便是同一个品牌的手机,也有无数的影响因素,每个手机模型都有特定的配置,比如操作系统,处理器,内存和屏幕尺寸等等。测试手机应用时,这些因素或多或少都应该被考虑到,绝对不是件轻松的事。面对这种情况,选择一中功能够用的性能测试工具变得越来越重要。

用户数量巨大

随着时间的推移,使用智能手机商务应用的用户会急剧增加,越来越多的用户会通过手机处理重要业务。用户数量增加,相应的网络应用也需要增加。你不仅仅要满足现有用户需要,还要适时地增加新功能,这对任何手机应用都是极其重要的。

桌面端网络应用和手机应用的差别

不管是桌面端网络应用还是手机应该,性能测试的基本原理是相似的,尤其是对于手机网络应用的测试。两者使用相同的技术,你也不用为手机应用选择特别的性能测试工具。测试工具只需要具备基本的性能测试能力,测试人员基本上会用就行了。尽管如此,手机应用和桌面应用还是有如下几个本质上的区别:

客户端模式

传统网络应用运行在胖客户端上,而手机应用使用的是瘦客户端。胖客户端直接从服务器端访问应用,而不像瘦客户端那样需要将数据通过信号塔中转,因而它比瘦客户端吞吐量更大,速度更快。

网络带宽

网络带宽在性能中担当重要角色,现今的桌面端应用极大地得益于高速网络。移动网路也在带宽方面不断进步,不过任然无法与前者相提并论。大多数用户在低于3G或4G的网络下使用手机,应用的会话时间延长,用户的响应时间也响应增加,同时也消耗了更多电量。相比桌面应用,带宽是导致手机应用性能差的最大原因。

数据传送

与桌面端应用强大的CS架构不同,手机数据得依靠信号塔传送到用户设备上。信号塔之间的数据传送一直以来都很慢,也使得手机应用性能变差。

设备电量

网络应用可以借助桌面电脑的高速处理器和内存最大化地提高性能,然而移动设备的资源却非常有限。移动设备只能依靠有限的电池和内存资源。

操作方式

不像桌面应用那样通过点击鼠标来操作,移动设备使用手指操作从而获得更好的用户体验。手指操作不如鼠标来得快。何况,设备其实需要将触摸动作翻译成点击。

数据使用

在移动网路中,流量是收费的。数据缓存技术是桌面应用中提高用户体验的常用手段,但由于流量限制,此项技术在移动应用中无法实现。

性能指标

由于架构不同,网络和移动应用的性能指标也有些许差别。除了常规指标如响应时间和资源利用量之外,还需要监控电池消耗、二进制大小等等。

手机性能测试基础和最佳实践

本地手机应用脚本的录制

你需要一个移动设备或模拟器来录制用户在本机移动应用上的操作。为了测试应用的性能而录制用户操作,需要暂时关闭移动设备或模拟器上的其他网络流量。你需要一个额外的设备来记录手机或模拟器上的流量,而这个设备可以代替移动设备或模拟器接入互联网。如果用来录制的设备是运行在防火墙之后的,那就不可能获得从3G或4G网络里的流量记录。

解决这个问题的方法是将移动设备设置为代理录制器。强制让数据从录制代理里通过,就可以直接用移动设备来录制用户操作。

网络手机应用脚本的录制

从手机网络应用抓取用户操作与桌面网络应用相似,因为两者沿用了类似的架构。为简单起见,可以用桌面网页浏览器来录制移动网络应用的用户操作。不过,你需要修改用户请求,伪装成是来自移动设备而不是桌面电脑。浏览器插件可以修改用户代理,让请求看起来像是通过移动设备发出的。除此之外,最新的桌面网页浏览器需要支持最新的移动应用技术如HTML5等等。

混合移动应用脚本的录制

就像手机网络应用一样,桌面网页浏览器也可以用来录制各种各样的混合移动应用。你可以直接浏览到该手机应用的URL地址,然后做性能测试,就像测试单纯的网络应用一样。

准确评估应用程序的性能,必须识别并模拟最类似现实情况的设置。合理的负载模型是实现预期效果的关键。不同用户的互联网接入情况不尽相同(例如,Wifi,3G和4G),成功的性能测试必须覆盖所有的情况。所有流行的手机应用性能测试工具都可以模拟真实世界的各种网络连接。

另外,根据具体的功能,模拟不同地理区域的大用户负责也很重要。好的性能测试工具像AgileLoad可以借助基于云的性能测试模拟不同地理位置的大用户负载。

测试的执行过程是被监控的,在所有针对不同用户负载的应用程序响应被测试完之后,其结果也会对比事先定义好的服务水平协议得到全面的分析。好的性能测试工具如AgileLoad,也提供问题诊断功能,帮你找出根本原因从而快速解决。

移动应用性能优化技术

移动应用的性能优化技术取决于特定的应用极其瓶颈特性。我们在这里分享几个通用的优化移动应用性能的技巧:

减少客户端到服务器的HTTP请求数量,可以缩短页面加载时间

将JavaScript和CSS打包成文件并在多个页面之间共享,也是优化性能的好办法

尽管浏览器缓存在移动应用上不那么凑效,但可以用HTML5的网页存储技术替代

使用内嵌脚本资源,链接引用会极大地延长加载时间

压缩或尽量减少界面资源,少占带宽,也能提高速度

根据屏幕尺寸裁剪图像, 不仅能减小图片大小,还能提高处理速度

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值