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        

  注:响应时间的单位为:秒

  这个测试结果比较满意,还在进一步调优。

时间: 2024-09-28 22:42:47

LoadRunner做性能测试 从设计到分析执行的相关文章

转:LR性能测试结果样例分析 测试结果分析

LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几个方面分析,如图1- 1所示.性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向.我们回顾一下本次性能测试的目的,正如 所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率.内存使用率分别不超过

(转)LR性能测试结果样例分析

测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几个方面分析,如图1- 1所示.性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向.我们回顾一下本次性能测试的目的,正如 所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率.内存使

【转】在做性能测试之前需要知道什么

最近群里来了很多新朋友,大都是新做测试或准备做测试工作的,见好多新来上来就问关于LoadRunner的使用上的问题.对性能测试的理解也不是太清楚.公司说让他们对系统做个性能测试,他们听说LoadRunner是做性能测试的,在网上找了点了LoadRunner的使用说明就开始对系统下刀了.对于一些大公司的专业性能测试人员来说,这个很可笑,但这是种情况是存在的,我当初也到公司时也这么干的. 那时还真把性能测报告给整出来了,现在看来那报告没有任何意义.虽然,虽然对现在的我来说性能测试也只是只懂皮毛.但还

怎么做性能测试--响应时间

做性能测试先要懂性能,响应时间(response time)作为性能测试过程中两大重要指标之一是我们必须关注的. 从用户角度来说,用户最讨厌等待.在大量的处理环境中,超过3秒以上的响应时间将会严重影响工作效率.然而最终用户的感受不仅仅是绝对时间问题,他们对于响应时间的期望是参照以往的经验,而这种期望是相对于他们使用该应用的基准性能.如果使用该应用的当前感受和以往的经验有很大的差别时,抱怨以及需要支持的电话就会成倍地增加.响应时间对于用户来说既有客观成分,也有主观成分. 例(1):对于小说网站来说

看《做性能测试需要知道些什么》

看<做性能测试需要知道些什么>需理解最佳用户数和最大用户数开始性能测试前,需要知道:1.客户的要求 如系统同时满足**用户登录,平均每个用户登录时间不超过**秒2.目前系统的性能 求最大用户数和最佳用户数,系统分析并找到压力点3.系统瓶颈 分析可能对系统造成瓶颈的逻辑业务4.长时间压力下性能状况(强度测试)->内存溢出 测试环境1.硬件 服务器.CPU.内存2.软件 前端.中间件.服务器3.网络环境 寻找系统的压力点 做性能测试之后需要知道些什么->获取"有效的"

测试用例设计——场景分析法

转载 测试用例设计——场景分析法 定义 分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法. 关心用户做什么,而不是关心产品做什么 优点:实用性强,有效,设计出来的用例有价值 缺点:可能使用的场景不一定能对事件系列进行全面的分析,设计出来的用例不完整. 场景分析是通过描述流经用例路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有基本流 :直黑线表示基本流,是最基本.最简单的路径:(软件功能按照正确的事件流实现的一条正确流程无任何错,程序从

想做性能测试不知道怎么选顺手的工具?

原文链接:http://www.51testing.com/html/49/n-3721249.html 前言 当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?locust?还是loadrunner呢? 今天,笔者将根据自己使用经验,针对jmeter.locust.wrk和loadrunner常用的性能测试工具进行简单介绍和对比.首先,四者基本对比图: 由于loadrunner为商业收费模式,对于公司级测试使用而言涉及到授权问题,因此,本文暂不对loadrunn

(转)常用的算法设计与分析-一夜星辰的博客

算法设计与分析 分治法 思想 1. 将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同.递归地解这些子问题,然后将各子问题的解合并得到原问题的解. 2. divide-and-conquer(P) { if(|P| <= n0)adhoc(P); divide P into samller subinstances P1,P2...,Pk; for(int i = 1;i < k;i++) { yi = divide-and-conquer(Pi); } retu

满屏浏览器设计解决方案分析

满屏浏览器设计解决方案分析 以下数据由js获取 介于时下硬件尺寸不一,做出细微数据测试 屏幕尺寸(英寸) 分辨率 窗体高度(px) 浏览器 14 1366x768 650 ie9 591 firefox 15.6 1366x768 673 ie9 616 firefox 17 1024x768 612 ie8 630 firefox 以上数据真实有效 表格数据分析得出结论:在浏览器类型相同及纵向分辨率相同的情况下浏览器窗体高度受屏幕尺寸影响 再次分析浏览器本身,测试环境--尺寸:15.6,分辨率