(原创)如何对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对移动互联网后端服务器压力测试 原文出处
(原创)如何对APP服务端进行压力测试的更多相关文章
- App服务端架构变迁
随着移动互联网时代的到来,移动技术也随之飞速发展.如今,App已然成为绝大多数互联网企业用来获取用户的核心渠道.以往以PC为主要承载平台的各业务线,源源不断集成加入到移动项目中来,原本以产品为中心快速 ...
- 移动App服务端架构设计
我从事手机app服务端开发现在已经是3个年头,自己也整理出了一套相对好用的服务架构,写出来,跟大家一起分享.如有不足,还请多指教. 一:基础流程图. 其实有一点还需要加上,就是对json的压缩和加 ...
- socket服务端开发之测试使用threading和gevent框架
socket服务端开发之测试使用threading和gevent框架 话题是测试下多线程和gevent在socket服务端的小包表现能力,测试的方法不太严谨,也没有用event loop + pool ...
- 移动APP服务端设计开发注意要点
2014年,移动APP的热度丝毫没有减退,怎么为您的移动端app设计良好的服务器端接口(API)呢? 下面谈谈我个人的一些想法. 2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站 ...
- 移动APP服务端API设计应该考虑到的问题
2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站那样所取代, 不但如此,越来越多的传统应用.网站也都开始制作自己的移动APP,也就是我们常说的IOS客户端.android客户端. ...
- APP服务端开发遇到的问题总结(后续再整理解决方法)
IOS AES对称加密,加密结果不同,问题解决 IOS http post请求,使用AFNetworing 框架,默认请求content-type为application/json ,所以无法使用@ ...
- 如何排查APP服务端和客户端是否支持ATS
服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...
- Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner
4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...
- 如何正确的做WEB端的压力测试
1.对要测试的系统进行分析,明确需要对哪一块做压力测试.比如:淘宝网站双十一期间,秒杀跟支付,此模式用户操作中占比比较大 再比如:游戏,登录--开始战斗--结束战斗这种混合模式在用户操作中占比较大 那 ...
随机推荐
- C - How Many Tables 并查集
Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to kn ...
- Asp.Net页面生命周期[转]
一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ...
- 杨辉三角的打印(Java)
// //输入指定的行数,打印杨辉三角 // //每个数等于它上方两数之和. //每行数字左右对称,由1开始逐渐变大. //第n行的数字有n项. // // // //可从打印菱形的思想出发:???? ...
- jq仿苹果的时间/日期选择效果
1.html文件,index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 第5章 Cisco测试命令和TCP/IP连接故障处理
第5章 Cisco测试命令和TCP/IP连接故障处理 一.故障处理命令 1.show命令: 1) 全局命令: show version :显示系统硬件和软件版本.DRAM.Flash show sta ...
- AE 创建
using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF; usi ...
- react面试题(一)
react 生命周期函数 初始化阶段: getDefaultProps:获取实例的默认属性 getInitialState:获取每个实例的初始化状态 componentWillMount:组件即将被装 ...
- SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件
SuperSwipeRefreshLayout 一个功能强大的自己定义下拉刷新组件. Why? 下拉刷新这样的控件.想必大家用的太多了,比方使用非常多的XListView等. 近期.项目中非常多列表都 ...
- jQuery 中ready与load事件
jquey有3种针对文档加载的方法: //document ready $(document).ready(function(){ //...代码... }) //document ready 简写 ...
- 并发数 = QPS*平均响应时间
转:https://blog.csdn.net/luman1991/article/details/70919279 并发数 = QPS*平均响应时间 QPS(TPS):每秒钟request 每秒查询 ...