LoadRunner做性能测试 从设计到分析执行
项目简介:像百度知道系统类似的系统性能测试,是公司的自己产品。
对最近这个系统的性能测试进行总结下:
系统功能介绍:
前台用户可以根据自己的需要对不同的区域提问,提问包括匿名和登陆用户提问
后台不同区域的管理员对所提的问题进行回答、删除和审核问题,超级管理员对所有区域信息能够进行统计。
测试工具:
● MI公司的压力测试工具LoadRunner
● 版本:8.1
● License:10000
● 协议:HTTP/WEB协议
根据需求设计性能测试方案及场景
场景简单设计如下:
1. 前台发帖
● 打开首页面;
● 记录进入首页面所用时间
● 输入用户名和口令登陆;
● 记录登陆所用的时间;
● 编辑帖子并发送;
● 记录发帖所用时间;
● 重复3-6步15分钟。
2. 后台回答问题
● 打开后台登陆页面;
● 记录进入页面所用时间;
● 输入用户名和口令登陆;
● 记录登陆所用的时间;
● 发送回答问题信息;
● 记录回答问题所用时间;
● 重复3-6步15分钟。
3. 后台审核问题
……
4. 后台删除问题
……
硬件环境:
负载均衡和HA,局域网(压力机和服务器在同一交换机上)
性能指标:
没有明确的性能指标,重点监控服务器不出现500错误,以及CPU、内存、IO等资源使用情况,以及并发数、TPS、成功率等根据测试情况进行调优,满意为止。(和别的web性能测试提出明确指标如响应时间等有所不同)
测试脚本修改原则:
前台发帖:
1. 注释思考时间
2. 前台要求对不同的区域进行发帖提问,所以要数据库中存在相应的区域,并允许同一IP多次提交提问
A. 由于所存在区域如500个,而前台要求并发提问为2000并发,这样一一对应关系会使参数不足,可以做参数化的时候,对所存在的区域信息进行copy。参数选择的设置为unique、once,这样才能使一个提问者对于一个区域。
B. 对问题的要求,要求每次提不同的问题,最简单的方法是做参数时选择unique number,update value on选择once,数据已经足够大了,不会担心参数不够而报错。
3. 要求开发注释掉验证码,或万能验证码
后台回帖:
1. 注释思考时间
2. 后台允许多个IE登陆
A. 由于所存在区域如500个,要求登陆并发回帖为2000并发,这样一一对应关系会使参数不足,可以做参数化的时候,对所存在的区域信息进行copy。参数选择的设置为unique、once。注意密码和用户名要完全匹配。
B. 对同一个问题运行多次回答。
C. 加检查点如: web_global_verification("Text=欢迎您",LAST);
D.对一个问题对应一个用户注意参数化的设置。
执行测试并分析调优:
测试中报错的信息解决:
1. Failed to connect to server "域名:80": [10065] No Route to Host
解决:
这种错误信息有两种情况,一是交换机堵塞,一是服务器网络堵塞或者CPU无法响应(网卡中断处理不过来了)。
从服务器端检查下iptables 是否开启,看看 /proc/sys/net/ipv4/ip_conntrack_max 是多少。
2. TTP Status-Code=500 (Internal Server Error)
解决:
A. 这个问题,开发人员从程序和环境进行调优了。
B. 通过抓包发现有大量的sql语句重复执行,建议优化sql。
C. 优化JVM。机器配置:4G的内存,32个线程并发能力
-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20
3. HTTP Status-Code=504 (Gateway Time-out)
解决:
502 bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
504Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。
解决:可以启动多个tomcat服务,一个tomcat服务可能支撑不了那么大的并发。(一般情况下像IBM高配的服务一个tomcat能支持2000并发吧。)(只能让部署环境的同事帮忙调整,我们没这权利啊。)
4. Step download timeout (120 seconds) has expired when downloading non-resource(s)
解决:
可以修改配置参数(tomcat的),也可以程序上进行调整超时时间。
如 <Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
当然了也可以调整LR的配置但最好不这样。
5. Abnormal termination, caused by mdrv process termination
解决:
大胆尝试了修改了LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols 中的http.lrp信息,在[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量 。
测试结果:
● 前台发帖:
场景设计:执行2000并发匿名对不同的区发帖,每15秒上50个用户,2000个用户全部到达后,持续执行10分钟。
并发数 | 提问响应时间 | 成功率% | 服务器每秒处理的请求数 | 吞吐量(Mbps) |
2000 |
● 后台回帖:
场景设计:执行400并发对同一区不同的帖子进行回复,每10秒上20用户,400个用户全部到达后,持续执行10分钟。
并发数 | 回帖响应时间 | 成功率% | 服务器每秒处理的请求数 | 吞吐量(Mbps) |
400 |
注:响应时间的单位为:秒
这个测试结果比较满意,还在进一步调优。
LoadRunner做性能测试 从设计到分析执行的更多相关文章
- Loadrunner做性能测试的主要步骤
Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...
- [转][LoadRunner]LR性能测试结果样例分析
LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...
- [LoadRunner]LR性能测试结果样例分析
R性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源. ...
- 使用Loadrunner进行性能测试
一.确定性能测试的范围.要求.配置.工具等 明确测试的系统: 本文档主要指的是web应用. 明确测试要求: 用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持3 ...
- 转:LR性能测试结果样例分析 测试结果分析
LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几个方面分析,如图1 ...
- LR性能测试结果样例分析
http://www.cnblogs.com/hyzhou/archive/2011/11/16/2251316.html 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可 ...
- (转)LR性能测试结果样例分析
原文作者:猥琐丶欲为 传送门:http://www.cnblogs.com/hyzhou/archive/2011/11/16/2251316.html 测试结果分析 LoadRunner性能测试结果 ...
- LoadRunner 技巧之 脚本设计
LoadRunner 技巧之 脚本设计 在做性能测试时,我们可能会遇到各种不同的业务需求与用户行为,在一个系统或网站中,每个用户的操作都不完全一样.我们如何来模拟这此用户的行为?经验与能力有限,我这里 ...
- 使用Jmeter做性能测试
上周刚刚做完项目的性能测试.今天整理和总结一下,随便分享给大家. 首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析.场景分析大家根据自己的项目系统进行分析设计,我们选用 ...
随机推荐
- 基于jquery hover图片遮罩层滑动
分享一款基于jquery hover图片遮罩层滑动.这是一款仿腾讯课堂的鼠标悬停经过图片遮罩透明层滑动效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div clas ...
- java开发之发牌小程序
发牌规则 黑桃按照从小到大依次为:1-13 红桃按照从小到大依次为:14-26 梅花按照从小到大依次为:27-39 方块按照从小到大依次为:40-52 小王53 大王54 代码实现: packag ...
- win7下memCache安装过程
1.下载memcache 的windows 稳定版,解压放某个盘下面,比如在H:/wamp/www/php api/memcache: 2.在终端(即cmd 命令界面)下,输入安装命令 :H:/wam ...
- HashTable浅析
本文转载自: http://rock3.info/blog/2013/12/05/hashtable%E6%B5%85%E6%9E%90/ 一.Hash特点 Hash,就是杂凑算法,Hash(str1 ...
- <跟股市谚语学炒股> 读书笔记
书在这里 一般情况下,当成交清单上显示的买盘金额大.笔数少,卖盘金额小.笔数多时,系主力在建仓.散户在卖出:相反,若买盘金额小.笔数多,卖盘金额大.笔数少时,系主力在出货.散户在买入 一般来说,当大盘 ...
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 2015-03-10 22:38 28419人阅读 评论(17) 收藏 举报 分类: Android ...
- java中反向转义org.apache.commons.lang3.StringEscapeUtils.unescapeJava
工具类中包含类反向转义的方法: eorderHistory.setSubPrintTemplates(StringEscapeUtils.unescapeJava(eorderHistory.getS ...
- 回顾:maven配置和常用命令整理
推荐两个库地址,开源中国的好像不好使了 阿里的仓库:http://maven.aliyun.com/nexus/content/groups/public/ 另一个:http://repo2.mave ...
- android开发(30) 使用WebView,点击网页中的链接建立QQ 临时会话 WPA
在PC端,我们可以通过一个URL链接,点击后启动QQ,这是很好的用户跳转体验.很方便. 使用的链接如下: <a target="_blank" href="http ...
- JavaScript:数据类型
JavaScript中数据类型分为两种: 1.基本数据类型 string number boolean null undefined 2.引用类型 数组.Object.function 一.基本数据类 ...