论文部分内容阅读
摘 要:随着网络的快速发展,手机等移动终端上网人数迅速增加,极大地带动了移动应用的快速发发展。用户对移动应用的性能期望非常高,如何提高移动应用软件性能,非常重要。本文介绍移动应用概念、类别、提高移动应用性能重要性,探析了移动应用软件在移动端性能测试的主要关注点,性能测试过程以及性能测试工具。
关键词:移动应用 性能测试 自动化
中图分类号:TP311.52 文献标识码:A 文章编号:1672-3791(2017)09(c)-0017-02
根据第39次互联网发展状况统计报告显示,截至2016年12月中国网民规模达7.31亿,其中手机网民规模达6.95亿,网民中使用手机上网人群占比95.1%[1],手机不断挤占其他个人上网设备的使用。手机上网人数的增加,带动了移动应用的快速发展。
1 移动应用简介
1.1 移动应用
广义移动应用包含个人以及企业级应用,狭义移动应用指企业级商务应用。一般运行在手机、平板电脑介质为代表的移动终端上。
目前移动应用正逐渐渗透到人们生活和工作的各个方面,新闻资讯、移动音乐、手机游戏、在线视频、即时通讯、地图导航等丰富多彩的移动互联网应用快速发展,深刻地改变着社会生活,人们喜欢通过各种移动应用获取信息[2]。
1.2 移动应用的类别
移动应用可分成三大类:(1)本地应用。用户从网上下载、安装到特定移动设备上,无需连接到互联网就能使用。(2)联网应用。通过移动终端上的浏览器访问网络。(3)混合应用。联网应用和本地应用的结合,联网应用被内嵌到本地移动应用中,用户界面像本地应用,内容联网加载。
1.3 提高移动应用性能的重要性
手机用户对性能期望非常高,希望手机应用能像在电脑上运行那么快。据统计:70%以上的用户希望在手机上打开网页能同电脑上一样快,5s被认为是用户能忍受的最长响应时间,如果响应时间超过5s,50%以上的用户会放弃,1/3失望的用户会转向竞争对手的移动应用。通常手机用户会尝试两次,如果第三次依然出现同样问题,半数人再也不会使用该应用。由此可见,移动应用的性能对软件来说非常重要。
2 性能测试
性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试主要目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈及问题,找到软件的可扩展点,优化软件,最后起到优化系统的目的。移动应用软件性能测试主要是在移动端即客户端的测试,主要关注以下内容。
2.1 响应时间测试
响应时间是移动应用软件对用户发出的请求做出响应所需要的时间。响应时间包括网络传输时间、应用服务器处理时间和数据库服务器处理时间。用户要求移动应用软件给出快速响应,一般业务响应时间不超过5s。
2.2 移动应用软件资源占用测试
移动端移动应用软件占用资源主要有CPU、内存、网络流量、电量。
(1)CPU。主要测试移动应用软件CPU占用率。应用软件CPU占用率经常超过80%,该软件需要调优。(2)内存。主要测试移动应用软件内存使用率。在Android系统中,每个APP进程同其他进程共享且独用私有内存。PSS(实际使用的物理内存)值包括自身占用的内存大小和共享库的大小。一般用PSS来衡量一个APP的内存开销,移动设备为每个APP进程分配的私有内存是有限制的。这就要求要合理的申请内存使用和及时释放内存,以免发生内存泄漏。(3)网络流量。主要测试移动应用软件对网络流量的消耗情况。目前的网络类型包含2G、3G、4G、WiFi,且区分的不同运营商。在统计流量消耗时,要连接不同的网络进行测试。(4)电量。主要测试移动应用软件对电量的消耗情况。移动设备的电池电量有限,要测试软件的电量使用,以免用户手机耗电发热,带来不良体验。
2.3 可靠性测试
软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力。软件可靠性测试是指为了保证和验证软件的可靠性要求而对软件进行的测试。大部分通过自动化测试工具来实现。通过软件可靠性测试可以达到以下目的:(1)有效地发现程序中影响软件可靠性的缺陷。(2)验证软件可靠性满足一定的要求。(3)预计软件可靠性水平。
3 性能测试的基本过程
性能测试过程是一个持续的测试和优化过程,即先进行性能测试,发现问题,试图处理问题以提高系统的性能,再进行性能测试、优化,直到达到满意的结果[3]。基本过程有以下几步。
(1)确定性能测试需求,包括确定性能指标及系统会承受的负载。(2)选择测试工具和开发相应的測试脚本。一般针对选定的关键业务操作来开发相应的自动化测试脚本,并进行测试脚本的数据关联和参数化。(3)建立性能测试负载模型,确定每次请求的数据量、思考时间、加载方式和持续加载时间。(4)多次运行性能测试,获得软件系统的性能数据。(5)对系统资源进行跟监控和分析,发现性能瓶颈,定位代码中的性能问题。解决软件系统的性能问题,进行优化。(6)提交性能测试报告。
4 性能测试工具
性能测试大多通过测试工具自动化进行测试,测试工具种类繁多。经典的性能测试工具是HP LoadRunner。HP LoadRunner Mobile Recorder可进行移动端应用业务脚本录制,VuGen可实现脚本编辑,Controller实现业务负载场景的设计、监控及执行,Analysis进行结果的分析,实现移动平台性能测试。
其他测试工具主要有以下几类。
(1)Android studio自带性能测试工具。Memory Monitor主要用于内存检测实时监测应用的内存使用情况,查找内存泄漏。CPU Monitor主要用于实时监测应用的CPU的使用情况。Network Monitor主要用于实时监测应用的网络使用情况。
(2)第三方性能测试工具。
①Emmagee:Emmagee是网易QA团队开发的Android性能监测小工具,主要用于监控单个App的CPU、内存、流量、启动耗时、电量、电流等性能状态的变化。
②Itest:Itest是科大讯飞出品,可获取应用的资源消耗情况,用于记录应用的CPU、内存、流量、电量等消耗。
(3)云测试平台。国内外有一些云测试平台,借助于云测试平台可更真实地对移动应用软件进行性能测试。移动应用性能测试的云测试平台有Testing云测试、百度MTC、阿里MQC、贯众云测试、腾讯优测、腾讯WeTest等。
5 结语
随着网络的快速发展,手机等移动终端上网人数迅速增加,极大地带动了移动应用的快速发发展。用户对移动应用的性能期望非常高,如何提高移动应用软件性能,非常重要。
参考文献
[1] 中国互联网络信息中心.第39次中国互联网络发展状况统计报告[EB/OL].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/,2017-06-24.
[2] 王立群,杨静.移动应用软件性能测试研究[J].科技风,2015(21):115.
[3] 朱少民.软件测试方法和技术[M].3版.北京:清华大学出版社,2016.
关键词:移动应用 性能测试 自动化
中图分类号:TP311.52 文献标识码:A 文章编号:1672-3791(2017)09(c)-0017-02
根据第39次互联网发展状况统计报告显示,截至2016年12月中国网民规模达7.31亿,其中手机网民规模达6.95亿,网民中使用手机上网人群占比95.1%[1],手机不断挤占其他个人上网设备的使用。手机上网人数的增加,带动了移动应用的快速发展。
1 移动应用简介
1.1 移动应用
广义移动应用包含个人以及企业级应用,狭义移动应用指企业级商务应用。一般运行在手机、平板电脑介质为代表的移动终端上。
目前移动应用正逐渐渗透到人们生活和工作的各个方面,新闻资讯、移动音乐、手机游戏、在线视频、即时通讯、地图导航等丰富多彩的移动互联网应用快速发展,深刻地改变着社会生活,人们喜欢通过各种移动应用获取信息[2]。
1.2 移动应用的类别
移动应用可分成三大类:(1)本地应用。用户从网上下载、安装到特定移动设备上,无需连接到互联网就能使用。(2)联网应用。通过移动终端上的浏览器访问网络。(3)混合应用。联网应用和本地应用的结合,联网应用被内嵌到本地移动应用中,用户界面像本地应用,内容联网加载。
1.3 提高移动应用性能的重要性
手机用户对性能期望非常高,希望手机应用能像在电脑上运行那么快。据统计:70%以上的用户希望在手机上打开网页能同电脑上一样快,5s被认为是用户能忍受的最长响应时间,如果响应时间超过5s,50%以上的用户会放弃,1/3失望的用户会转向竞争对手的移动应用。通常手机用户会尝试两次,如果第三次依然出现同样问题,半数人再也不会使用该应用。由此可见,移动应用的性能对软件来说非常重要。
2 性能测试
性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试主要目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈及问题,找到软件的可扩展点,优化软件,最后起到优化系统的目的。移动应用软件性能测试主要是在移动端即客户端的测试,主要关注以下内容。
2.1 响应时间测试
响应时间是移动应用软件对用户发出的请求做出响应所需要的时间。响应时间包括网络传输时间、应用服务器处理时间和数据库服务器处理时间。用户要求移动应用软件给出快速响应,一般业务响应时间不超过5s。
2.2 移动应用软件资源占用测试
移动端移动应用软件占用资源主要有CPU、内存、网络流量、电量。
(1)CPU。主要测试移动应用软件CPU占用率。应用软件CPU占用率经常超过80%,该软件需要调优。(2)内存。主要测试移动应用软件内存使用率。在Android系统中,每个APP进程同其他进程共享且独用私有内存。PSS(实际使用的物理内存)值包括自身占用的内存大小和共享库的大小。一般用PSS来衡量一个APP的内存开销,移动设备为每个APP进程分配的私有内存是有限制的。这就要求要合理的申请内存使用和及时释放内存,以免发生内存泄漏。(3)网络流量。主要测试移动应用软件对网络流量的消耗情况。目前的网络类型包含2G、3G、4G、WiFi,且区分的不同运营商。在统计流量消耗时,要连接不同的网络进行测试。(4)电量。主要测试移动应用软件对电量的消耗情况。移动设备的电池电量有限,要测试软件的电量使用,以免用户手机耗电发热,带来不良体验。
2.3 可靠性测试
软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力。软件可靠性测试是指为了保证和验证软件的可靠性要求而对软件进行的测试。大部分通过自动化测试工具来实现。通过软件可靠性测试可以达到以下目的:(1)有效地发现程序中影响软件可靠性的缺陷。(2)验证软件可靠性满足一定的要求。(3)预计软件可靠性水平。
3 性能测试的基本过程
性能测试过程是一个持续的测试和优化过程,即先进行性能测试,发现问题,试图处理问题以提高系统的性能,再进行性能测试、优化,直到达到满意的结果[3]。基本过程有以下几步。
(1)确定性能测试需求,包括确定性能指标及系统会承受的负载。(2)选择测试工具和开发相应的測试脚本。一般针对选定的关键业务操作来开发相应的自动化测试脚本,并进行测试脚本的数据关联和参数化。(3)建立性能测试负载模型,确定每次请求的数据量、思考时间、加载方式和持续加载时间。(4)多次运行性能测试,获得软件系统的性能数据。(5)对系统资源进行跟监控和分析,发现性能瓶颈,定位代码中的性能问题。解决软件系统的性能问题,进行优化。(6)提交性能测试报告。
4 性能测试工具
性能测试大多通过测试工具自动化进行测试,测试工具种类繁多。经典的性能测试工具是HP LoadRunner。HP LoadRunner Mobile Recorder可进行移动端应用业务脚本录制,VuGen可实现脚本编辑,Controller实现业务负载场景的设计、监控及执行,Analysis进行结果的分析,实现移动平台性能测试。
其他测试工具主要有以下几类。
(1)Android studio自带性能测试工具。Memory Monitor主要用于内存检测实时监测应用的内存使用情况,查找内存泄漏。CPU Monitor主要用于实时监测应用的CPU的使用情况。Network Monitor主要用于实时监测应用的网络使用情况。
(2)第三方性能测试工具。
①Emmagee:Emmagee是网易QA团队开发的Android性能监测小工具,主要用于监控单个App的CPU、内存、流量、启动耗时、电量、电流等性能状态的变化。
②Itest:Itest是科大讯飞出品,可获取应用的资源消耗情况,用于记录应用的CPU、内存、流量、电量等消耗。
(3)云测试平台。国内外有一些云测试平台,借助于云测试平台可更真实地对移动应用软件进行性能测试。移动应用性能测试的云测试平台有Testing云测试、百度MTC、阿里MQC、贯众云测试、腾讯优测、腾讯WeTest等。
5 结语
随着网络的快速发展,手机等移动终端上网人数迅速增加,极大地带动了移动应用的快速发发展。用户对移动应用的性能期望非常高,如何提高移动应用软件性能,非常重要。
参考文献
[1] 中国互联网络信息中心.第39次中国互联网络发展状况统计报告[EB/OL].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/,2017-06-24.
[2] 王立群,杨静.移动应用软件性能测试研究[J].科技风,2015(21):115.
[3] 朱少民.软件测试方法和技术[M].3版.北京:清华大学出版社,2016.