(原创)如何对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.对要测试的系统进行分析,明确需要对哪一块做压力测试.比如:淘宝网站双十一期间,秒杀跟支付,此模式用户操作中占比比较大 再比如:游戏,登录--开始战斗--结束战斗这种混合模式在用户操作中占比较大 那 ...
随机推荐
- 22、Java并发性和多线程-Java中的读/写锁
以下内容转自http://ifeve.com/read-write-locks/: 相比Java中的锁(Locks in Java)里Lock实现,读写锁更复杂一些.假设你的程序中涉及到对一些共享资源 ...
- [JavaEE] Testing the Java EE Application : Basic Arquillian integration test
We have model like this: package com.pluralsight.bookstore.model; import javax.persistence.*; import ...
- 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展
将一个对象相同的属性(不区分大小写)赋值给一个新对象 1 public static T Mapper<S, T>(S source) 2 { 3 T t = Activator.Cr ...
- iOS 设置启动页面 时间
[NSThread sleepForTimeInterval:3.0]; 时间越大 ,启动页面停留的时间越长 iOS 8之后,,创建项目自带的有 LaunchScreen.xib 可直接用
- Android自定义用户控件简单范例(一)
一款优秀的移动应用需要具有自己独特统一的风格,通常情况下UI设计师会根据产品需求和使用人群的特点,设计整体的风格,界面的元素和控件的互效果.而原生态的Android控件为开发人员提供的是最基本的积木元 ...
- 配置远程连接mysql数据库 Connect to remote mysql database
设有本地机器(local machine), ip地址为localip 远程机器(remote machine), ip地址remoteip 要通过在local machine的终端连接remote ...
- CMDBuild安装及webservice接口的获取
近期项目组之前一直使用的OneCMDB出现了问题,在增删改数据时异常的慢.于是考虑能否够优化OneCMDB.由于本人水平有限,对OneCMDB进行代码级别的优化临时还有点难度.于是就对现有的其它开源C ...
- Android 信息提示——Toast方式
Toast用于向用户显示一些帮助/提示.一下列举了5中样式. 一.默认的效果(显示在屏幕的底部) 代码: Toast.makeText(getApplicationContext(), "默 ...
- 【POJ 2259】 Team Queue
[题目链接] http://poj.org/problem?id=2259 [算法] 由题,一个人入队时,若这个人所在的组已经有人在队列中,则加入队列,否则排到队末 因此我们发现,这个队列一定是由连续 ...
- 第三周 Leetcode 4. Median of Two Sorted Arrays (HARD)
4. Median of Two Sorted Arrays 给定两个有序的整数序列.求中位数,要求复杂度为对数级别. 通常的思路,我们二分搜索中位数,对某个序列里的某个数 我们可以在对数时间内通过二 ...