版权声明:本文为原创文章,转载请先联系并标明出处

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服务端进行压力测试的更多相关文章

  1. App服务端架构变迁

    随着移动互联网时代的到来,移动技术也随之飞速发展.如今,App已然成为绝大多数互联网企业用来获取用户的核心渠道.以往以PC为主要承载平台的各业务线,源源不断集成加入到移动项目中来,原本以产品为中心快速 ...

  2. 移动App服务端架构设计

      我从事手机app服务端开发现在已经是3个年头,自己也整理出了一套相对好用的服务架构,写出来,跟大家一起分享.如有不足,还请多指教. 一:基础流程图. 其实有一点还需要加上,就是对json的压缩和加 ...

  3. socket服务端开发之测试使用threading和gevent框架

    socket服务端开发之测试使用threading和gevent框架 话题是测试下多线程和gevent在socket服务端的小包表现能力,测试的方法不太严谨,也没有用event loop + pool ...

  4. 移动APP服务端设计开发注意要点

    2014年,移动APP的热度丝毫没有减退,怎么为您的移动端app设计良好的服务器端接口(API)呢? 下面谈谈我个人的一些想法. 2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站 ...

  5. 移动APP服务端API设计应该考虑到的问题

    2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站那样所取代, 不但如此,越来越多的传统应用.网站也都开始制作自己的移动APP,也就是我们常说的IOS客户端.android客户端. ...

  6. APP服务端开发遇到的问题总结(后续再整理解决方法)

    IOS  AES对称加密,加密结果不同,问题解决 IOS http post请求,使用AFNetworing 框架,默认请求content-type为application/json ,所以无法使用@ ...

  7. 如何排查APP服务端和客户端是否支持ATS

    服务端排查 取得客户端直接连接的服务端域名及端口,例如mob.com.cn,端口443,即HTTPS默认端口.针对公网可访问的生产环境地址,建议使用的在线监测工具.https://wosign.ssl ...

  8. Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner

    4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...

  9. 如何正确的做WEB端的压力测试

    1.对要测试的系统进行分析,明确需要对哪一块做压力测试.比如:淘宝网站双十一期间,秒杀跟支付,此模式用户操作中占比比较大 再比如:游戏,登录--开始战斗--结束战斗这种混合模式在用户操作中占比较大 那 ...

随机推荐

  1. mvc使用mongodb时objectId序列化与反序列化

    前面有写使用自己的mvc 序列化工具即jsonNetResult.我这里结合之前写的jsonNetResult来做一个Json序列化工具,而且序列化ObjectId成一个字符串.详细代码例如以下 us ...

  2. hdu 5078 2014鞍山现场赛 水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5078 现场最水的一道题 连排序都不用,由于说了ti<ti+1 //#pragma comment(link ...

  3. HDU 1159 Common Subsequence (动规+最长公共子序列)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  4. coffeescript的上下文

    CoffeeScript代码中,变量,甚至函数前面有时会带上一个@符号,那么翻译到 javascript里,就是 "this." 这就涉及到运行过程中的上下文. 这个this指什么 ...

  5. 逆向工程之App脱壳

    http://www.cnblogs.com/ludashi/p/5725743.html iOS逆向工程之App脱壳 本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是 ...

  6. 如何利用UDP协议封装一个数据包

    在如何封装一个数据包上,是一个非常细致的问题,而利用UDP协议来封装的话,是比较简单,让我们一步步来分析典型的TCP/IP协议.一般来说一个典型的一个数据包,包括以太网MAC头+网络层IP数据头+传输 ...

  7. ios14--购物车优化2

    // // ViewController.m // 03-综合练习 // // Created by xiaomage on 15/12/28. // Copyright © 2015年 小码哥. A ...

  8. maven 国内完整源

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. [BZOJ 2199] 奶牛议会

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2199 [算法] 2-SAT [代码] #include<bits/stdc++ ...

  10. 开发PL/SQL子程序和包及使用PL/SQL编写触发器、在JDBC中应用Oracle

    1.  子程序的各个部分: 声明部分.可执行部分.异常处理部分(可选) 2.子程序的分类: A.  过程 - 执行某些操作 a.  创建过程的语法: CREATE [OR REPLACE]  PROC ...