(原创)如何对APP服务端进行压力测试
版权声明:本文为原创文章,转载请先联系并标明出处
APP性能测试分为客户端性能测试和服务端性能测试,客户端的性能测试主要是针对启动快慢、耗电量、耗流量、内存使用等指标进行评估,目前主流的APP客户端性能测试工具有腾讯GT、testin、听云、AppsTest等等。而针对APP服务端的性能测试,主要关注点在于服务端的压力,与传统软件的服务端性能测试没太大区别,都是根据客户端与服务端通信使用的不同协议来构建对应协议的请求,目前使用最多的还是http协议。
性能测试中的脚本录制对传统的PC端-服务器端模式支持的已经非常好了,我们在浏览器上操作一遍业务,脚本就已经录制好了,这些例子网上也随处可见。但是对于手机APP脚本录制,就没那么容易了。LoadRunner为例,loadrunner12也支持了手机APP脚本录制,但是因LoadRunner购买价格昂贵,使用成本直线上升,所以土豪公司可以考虑,接地气的公司建议使用HyperPacer。
本文中,我们使用HyperPacer为例,进行APP服务器端的压力测试。
那么在HyperPacer中,如何实现APP的脚本录制呢,下面来简单介绍一下。
我们以红极一时的新浪微博手机客户端为例,来看一下HyperPacer中手机APP程序的脚本录制。
1、打开HYPERPACER,建立测试工程,选择压力测试场景
2、点击【录制】图标,进行脚本录制设置,默认浏览器选择“MOBILE APP”,监听端口选择固定端口并设置为5151,如下图:
注意:首页地址空着,不需要填写。
3、在录制配置界面点击确定后,会给出提示如何设置手机客户端,注意,此步骤先不录制,不要点提示信息中的【确定】!我们只是明确一下主机名和端口号。
4、在手机中打开无线网设置,设置HTTP代理(IOS系统为设置-无线局域网,选择所连接的无线网进行设置),代理选择手动,服务器和端口为提示信息中的地址和端口,即IP地址10.2.9.21、5151端口
5、在HYPERPACER的提示信息界面,点击【确定】按钮开始录制脚本。
6、录制开始后,需要操作新浪微博手机APP,完成脚本录制,我们录制以下几个业务:登录微博—查看我的账号—发布一条微博—退出微博,录制完成后见下图:
7、脚本录制完成后,需要准备用户数据等数据,对脚本进行参数化,直至脚本调试通过。
基于上面的实例,我们来讲解压力的起点和加压策略。压力的起点是通过负载测试得来的,也就是系统正常运行的最大负载量,对于微博这种应用广泛的web应用,我们假定它的正常运行的负载量是200用户(当然实际肯定远不止如此),最大用户数是500(实际也远不止如此),基准用户每秒加载10个,过载用户每秒加载15个,配置如下:
根据设定,前20秒每秒加载10个用户,直到200个基准用户加载完毕,接下来20秒每秒加载15个用户,直到300个过载用户加载完毕;所有500个用户加载完毕后,运行3分钟,运行完后,所有的500用户在30秒内退出系统。这里的数值要根据实际情况进行设定了。
HyperPacer中,可以通过压力阀配置系统过载的依据,压力阀包括资源使用情况、响应时间以及吞吐量等。
本例中我们度量平均每秒2个交易。执行压力测试后可以检查每秒是否低于2个交易,低于2个交易则终止执行。
参考文章: LoadRunner对移动互联网后端服务器压力测试 原文出处