(1.宜科(天津)电子有限公司;2.展讯通信(天津)有限公司天津300385)
摘要:随着移动终端的快速普及和发展,如何最大限度地利用资源,节省运行移动端所需要的能源,从而提高移动应用软件性能,至关重要。本文以移动应用软件性能测试为落脚点,分析移动应用软件性能测试重点和挑战,阐述了移动应用软件性能测试技术,在此基础上,给出了移动应用软件性能测试解决方案,并对移动应用软件性能测试进行展望,提出下一步需要研究解决的问题。
关键词:移动终端;应用软件;性能测试
目前,互联网技术正在膨胀的发展,互联网产品正在影响人们生活和工作的各个方面,以往的生活方式和习惯已经彻底发生了改变。作为当今社会互联网中最重要的移动终端,其移动应用已经得到了广泛的普及。随着应用程序的功能大量增多,逻辑越来越复杂,用户对应用的要求不再仅仅是实现功能,而更多关注的是处理业务时的性能指标,例如并发量、响应时间、吞吐率等是否满足需求。如何最大限度地利用资源、有效地整合资源、降低运行成本、节省运行移动终端所需要的能源,从而提高移动应用软件的整体性能,则变得更为重要。
1移动应用软件性能测试重点和挑战
1.1移动应用软件性能测试重点
移动应用软件性能测试主要分为响应时间测试、可靠性测试和应用资源占用测试3大部分构成。据统计,移动应用用户对性能期望值比较高,71%用户希望在手机上打开网页和电脑上一样快,能忍受的最长响应时间是5秒,超过5秒,一半的移动用户选择放弃。相比桌面程序,移动应用的可用资源更少,架构更加复杂,提高和维持快速的响应时间难度更大。可靠性测试主要是测试移动应用在各种压力情况下,能否按照需求正常运行,大部分通过自动化测试工具实现。应用资源占用测试,主要测试应用运行时对CPU、内存的占用情况,同时考虑到部分应用会调用系统服务,需要把与之关联的系统服务也考虑进来。
1.2移动应用软件性能测试挑战
移动应用软件相比传统的PC端应用程序,因其平台的特殊性,同时软件的功能也在增加,业务逻辑越来越复杂,如何确保应用软件能够按照需求和实际应用交付,满足用户的需求,测试工作必须贯穿于软件开发的整个周期中。移动应用软件开发大多采用快速原型、敏捷开发和迭代开发技术,所以移动应用软件数量增长迅速,同款软件更新速度快。灵活的软件架构,高质量、高性能的软件需求,测试时间的紧迫给性能测试提出了更高的要求,传统的性能测试方法已经满足不了需要,同时手工测试也存在局限性,需要使用自动化测试方法来提高效率,缩短测试周期,降低测试成本,满足新的需求。目前移动应用软件的使用时间和频率都在快速增长,使用的用户数量大量增加,使得并发用户数成为重点考虑的问题。一些热门的移动应用的用户量都在千万级以上,在性能测试过程中需要模拟真实用户进行并发操作。好的性能测试平台需要通过一定的机制生成大量的虚拟用户,模拟真实的用户进行相应的操作,测试软件的性能。现在的测试平台在进行性能测试时,大部分还是在PC机或模拟器上来完成的,而不是连接真正的移动设备,所以测试的环境对测试的结果还存在一定的偏差。
2移动应用软件性能测试技术
2.1移动应用软件性能测试工具
性能测试工具LoadRunner11.5及其以上版本支持移动应用的性能测试,选择mobilehttp/html协议录制,选择导出的.pcap文件,通过分析数据以生成脚本,再通过场景设置,执行脚本,结果分析等完成性能测试。NeoLoad为移动应用的性能测试提供了解决方案,提供手机网络的模拟(2G、3G、H+、4GLTE)、利用代理和隧道技术实现对于运行在真实移动设备上的应用的测试脚本录制功能,搭建了云测试平台用于大规模的测试需求。腾讯的安卓平台高效性能测试工具APT(AndroidPerformanceTestingTools),适用于开发自测和定位性能瓶颈,测试人员完成性能基准测试、竞品测试。APT提供了CPU利用率实时曲线图、多维度内存实时曲线图,方便竞品对比测试和定位内存泄露问题;支持进程内存构成分析,支持手工或超过阈值时自动转储(Dump)详细堆内存对象信息,支持多进程,支持生成和导出常用格式的日志图表。APT相比同类工具,具有下面2大特性:1)使用Java语言开发,基于Eclipse,跨平台,支持windows、Linux和MAC;2)支持同时监控多个进程。AndroidSDK自带了Monkey和Monkeyrunner这两个自动化测试工具。Monkey可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Mon-keyrunner提供了一个API,通过API写程序可控制Android设备和模拟器,可以完成回归测试和自定义测试。
2.2移动应用软件性能测试框架
移动应用测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumen-tation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Robotium测试框架,使用的类也是Instrumentation。通过将测试的工程项目安装到模拟器上面来与运行时的项目交互,触发其组件的动作等。它是自动化黑盒测试工具,集成了包括ActivityUtils、Clicker、Searcher等多种界面部件查找及操作方法集,能够编写健壮的测试用例、系统测试、验收测试方案等,可跨越多个Androidactivities。可以在有源码或者只有APK的情况下对目标应用进行测试,提供了模仿用户操作行为的API。通过与Android接口测试技术结合,完成对待测应用的压力、响应时间、可靠性测试等性能测试用例开发。
3移动应用软件性能测试解决方案
3.1准确及时录制移动应用脚本
为了测试应用的性能,一般需要录制用户操作,准确逼真的移动应用脚本是性能测试的基础和关键。我们可以把移动设备设置为代理录制器,录制本地手机应用;借助HTML5技术,使用网页浏览器录制网络手机应用脚本。
3.2借助云测试平台实现大用户负载
在国内,出现了一些云测试平台,如百度移动云测试中心(MTC)、性能测试服务(PTS)、腾讯Testin云测等。借助于这些云测试平台可以实现大用户负载、并发,更真实地对移动应用软件进行性能测试。国外,惠普提供开箱即用的解决方案测试移动应用的性能,该解决方案的基础是HPLoadRunner、HPPerformanceCenter软件和TruClient技术。HPLoadRunner通过在移动应用部署或升级之前检测瓶颈来避免产生性能问题,在实际应用之前准确给出移动应用的性能需求,进而验证应用是否满足指定的性能要求。HPPerformanceCenter建立在HPLoadRunner基础上,其中包括的管理框架提供基于网络、可全球访问的平台,进而促进企业范围内的测试与协作。通过输入性能需求和缺陷,能够实现需求、测试及缺陷之间完整的可追溯性。HPLoadRunner和HPPerformanceCenter中提供的Tru-Client技术是一个基于浏览器的新虚拟用户生成器,它嵌入在浏览器中,提供交互式记录和脚本编写功能,可以录制和重新播放。Tru-Client技术使得移动应用的性能测试更快速、更便捷、更全面。
结束语
随着移动终端的快速普及和发展,移动应用软件的性能至关重要。在移动应用系统上线发布之前,对其开展性能测试,及时发现不足,为系统正式运行后提供了有效的质量保障。性能测试可以模拟和预测真实环境中对应用系统的压力,将应用系统中存在的问题暴露出来,并通过对测试获得的各项数据进行分析,对优化应用系统的性能,选择合适的软硬件环境,提供帮助。
参考文献:
[1]杜春业,吴建华,宋巍.基于移动终端的应用软件性能测试[J].电子技术与软件工程,2017,(03):67-69.[2017-08-08].
[2]刘法旺,杨玚,骆骏瑞.智能移动终端应用软件综合测试服务平台[J].软件,2011,32(12):45-49.(2012-01-19)[2017-08-08].http://kns.cnki.net/kcms/detail/12.1151.TP.20120119.2036.003.html
[3]张恩海,王铎,于晋瑄.移动终端应用层软件自动化测试系统设计与实现[J].科技资讯,2015,13(03):12-13.[2017-08-08].DOI:10.16661/j.cnki.1672-3791.2015.03.019
[4]陆澄澹,周华,闻宏强,赵浩强.浅析基于TestQuest的移动终端应用软件测试方法[J].电子世界,2014,(16):114.[2017-08-08].
[5]王立群,杨静.移动应用软件性能测试研究[J].科技风,2015,(21):115+120.[2017-08-08].
[6]刘芳芳.基于移动平台APP测试[J].电脑知识与技术,2015,11(26):78-79.(2015-12-28)[2017-08-08].
[7]李明艳.基于移动互联网的软件测试技术研究及应用[J].电子技术与软件工程,2016,(04):42.(2016-03-07)[2017-08-08].
[8]许志兴,唐晓纹,刘学军.移动终端软件自动化测试技术的研究与应用[J].南京工业大学学报(自然科学版),2006,(05):67-70.[2017-08-08].