LoadRunner入门总结
来源:互联网 发布:网络歌曲大庆小芳 编辑:程序博客网 时间:2024/05/08 12:42
一、前言
具体使用的经验不多,说不上经验谈,只是将自己最近收集的loadRunner资料和自己所遇到过的问题,写成一份文档,方便后人。
二、LoadRunner的安装
详情请看http://blog.csdn.net/youyudehexie/article/details/7339225
三、脚本录制于验证部分
1.LR8.1版本,只能使用IE6测试,如果你的机器没有IE6,那请你下载LR11,如何安装IE6?如果你能成功卸载IE7和IE8那么你的IE就变成IE6
web_url("xl7bho.ini",
"URL=http://media.info.client.xunlei.com/xl7bho.ini",
"Resource=1",
"RecContentType=application/octet-stream",
"Referer=",
"Snapshot=t1.inf",
LAST);
你的脚本轻易地发现类似这种脚本,那就恭喜你了,你的电脑相当不干净,不适合测试,像迅雷和360等软件都会在我们浏览网页的时候,会收集我们的信息,发到他们的服务器,具体什么用途不详,遇到脚本上有类似的语句,记得删除,要不然会影响我们脚本运行。
四、如何模拟并发用户和在线用户?
老板需要并发用户XX多少?那么该如何实现并发用户呢和在线用户呢?我对LR这个软件理解不深,大概跟集中点相关,在执行某个链接访问的时候,在此访问前设置集中点,让虚拟用户同时集中足够的人数后,在访问来达到我们并发访问服务器的目的。另外附上,网上一篇关于并发用户的讨论
五、LR模拟虚拟用户只有1000???
LR只能模拟1000个用户,怎么能模拟2000呢?我也百度了一下,貌似没什么答案,具体专业的做法我也不太清楚,不过有个比较笨的办法,开两台电脑跑LR,1000+1000 ??=2000,请搜索负载加成器,这东西能帮助你,可以让通过负载加成器的帮助让其他电脑加起来一起跑虚拟用户。
另附:关于并发测试方面的讨论
看到51上三个高手Zee, 大漠飞鹰,xingcyx的一场非常精彩的关于并发用户数和集合点的讨论,很有意义。如果对这两个概念不清楚的朋友,一定要仔细领悟了。
故事开始于xingcyx的一番话:
声明:以下的问答是我根据实际工作经验和通过各种途径得到的信息而整理的,其回答内容主要代表我个人观点,并非标准答案,读者如有不同意见,欢迎批评指教。
Q:并发用户数和集合点有必然联系吗?在性能测试中必须使用集合点来测试吗?
A:并发用户数,顾名思义,就是同时操作的用户,这里的“操作”可以指对系统真正的操作,也可以只是连接(此时通常叫作“并发连接数”),而集合点是一种特殊情况下的并发,多用于测试系统在瞬间加压的表现。因此,并发用户数和集合点有联系,但并非必然的联系,在测试并发用户的性能测试场景中,可以不必设置集合点,这将视测试目标和测试策略而定。
Q:不设置集合点的测试,能代表是“并发”操作吗?
A:有这样一种说法,设置集合点是为了确保“严格意义上”的并发,其实从本质上看,这主要是一个看问题的粒度大小的问题。集合点的作用是通过工具的控制,确保一个请求严格的“同时”从前台提交到后台。可是如果微观地看,是不存在严格意义上的并发的,即使在客户端通过设置集合点的方式将100个请求同时提交到后台,经过网络上的传输消耗,可能它们并不是同时到达的,而即便100个请求同时到达服务器端,受到中间件和应用系统、数据库的各种连接池、缓冲区, CPU处理队列等的限制,也可能在服务器端产生等待的。因此,严格意义上的“并发”可以说是不存在的,我们需要做的是在可以接受的粒度范围内取得一个最佳的平衡点,站在这个平衡点的层面上去看待“并发”这个问题。
性能测试无非有两个目的,一是评测,二是调优。
在以评测为目的的性能测试中,用户更关心的是业务上的并发,也就是真实业务场景的并发情况,这种情况下只要按照业务操作的模式去设置场景就可以了,并不需要设置集合点。
集合点是一种特殊情况下的并发,通常是在以调优为目的的性能测试中才会用得到,目的是有针对性地对某个可能存在性能问题的模块施压,以便找到性能瓶颈。
集合点在我实际的测试过程中用得并不多。
Zee:
关于集合点,我一直觉得没有什么可争议的,这两天看到几个帖子在说这个东西。有一点我想大家都是认同的:集合是相对的集合。
集合是在产生负载的机器上的集合。如果考虑网络,中间件等等的因素。到服务器肯定不会是同一时间点,那于是就有人希望能更接近在服务器端实现并发的操作。认为这才是真正的并发。
我觉得首先要做的是分析应用系统,到底你想做的是什么。
比如说,你想让某个URL能达到1000个同时请求的目的。这样的目标就比较明确了。
而在讨论集合点的时候,大家很少拿具体的东西来举个例子。这样有点说不清楚。要想达到并发。我觉得应该更具体的分析应用。再来定下目标来做。而不是一直在讨论LR如何能实现。
Xingcyx:
因为在实践中,我经常会碰到这样的情况:
测试需求说,该系统应支持200个并发用户。
那么我们就开始测,录制好脚本,下一步就是在场景中执行了,在控制台中设置某脚本并发用户数为200,测试结果为通过或未通过。此时争议就来了:这200个用户的脚本如果执行通过,测试结果可以接受,是否可以说这个系统支持了200个并发呢?
大漠飞鹰:
测试前肯定要了解需求,或者说是测试目的。
就说明“该系统应支持200个并发用户。”, 这种需求严格意义上来说是不合格的需求,因为描述不够清晰,过于模糊等。
当然,在实际中,这类需求到了我们测试人的手里也是常有的,一般就当普遍的情况来出来。
比如,web系统,就按2/5/8,或者2/5/10来处理,如果能通过就pass,否则就让开发人员调优。
Zee:
从集合点到并发数的确定。我觉得这其中的转换最主要的地方在于分析业务。
比如用户说了:要求200个用户并发。
那要问清楚的就是,200个用户是个什么样的比例,有多少人在干这个,有多人在干那个,按百分比,用不同的脚本来跑。
那再来想一下客户。他关心的是200个用户在服务器上同时点同一个URL或者某一个相同的资源?这个客户我想大多不会关心。而他想要的就是我有200个用户在线的时候。响应时间不至于让人不可接受。至于多少才不可接受。按平常人的心理承受能力来衡量就可以了。再或者有其他的说法,就是200人同时点同一 URL或者请求同一资源,我想可以通过计算来增加vuser的数量或者集合呀,或者其他的方法来努力的向这个目标靠近。
如果说非要在服务器上这个时间并发这么多的用户。我觉得只能尽量把它缩小到一个时间段内。而这样做我觉得并不是从分析业务出发的,
Xingcyx:
楼上说的是最常见的一种情况,在这种测试需求下,我会设置一个混合场景来测试,也就是按照做不同事情的用户的百分比去设置。
但会有另外一些时候,并不是一个实际的应用系统,可能是一个开发平台,或者工作引擎等,它涉及的性能的概念会更偏向底层一些,这个时候可能就不是像一般的应用系统那样,设置一个混合场景来测试那么简单了。
大漠飞鹰:
一般说的并发数指的是业务并发,而不是服务器端得并发数。
六、结果分析与数值背后的意义
Vusers:
提供了生产负载的虚拟用户运行状态的相关信息,可以帮助我们了解负载生成的结果。
Rendezvous(负载过程中集合点下的虚拟用户):
当设置集合点后会生成相关数据,反映了随着时间的推移各个时间点上并发用户的数目,方便我们了解并发用户的变化情况。
Errors(错误统计):
通过错误信息可以了解错误产生的时间和错误类型,方便定位产生错误的原因。
Errors per Second(每秒错误):
了解在每个时间点上错误产生的数目,数值越小越好。通过统计数据可以了解错误随负载的变化情况,定为何时系统在负载下开始不稳定甚至出错。
Average Transaction ResponseTime(平均事务响应时间):
反映随着时间的变化事务响应时间的变化情况,时间越小说明处理的速度越快。如果和用户负载生成图合并,就可以发现用户负载增加对系统事务响应时间的影响规律。
Transactions per Second(每秒事务):
TPS吞吐量,反映了系统在同一时间内能处理事务的最大能力,这个数据越高,说明系统处理能力越强。
Transactions Summary(事务概要说明)
统计事物的Pass数和Fail数,了解负载的事务完成情况。通过的事务数越多,说明系统的处理能力越强;失败的事务数越小说明系统越可靠。
Transaction performanceSummary(事务性能概要):
事务的平均时间、最大时间、最小时间柱状图,方便分析事务响应时间的情况。柱状图的落差越小说明响应时间的波动小,如果落差很大,说明系统不够稳定。
Transaction Response TimeUnder Load(用户负载下事务响应时间):
负载用户增长的过程中响应时间的变化情况,该图的线条越平稳,说明系统越稳定。
Transactions Response time(事务响应时间百分比):
不同百分比下的事务响应时间范围,可以了解有多少比例的事物发生在某个时间内,也可以发现响应时间的分布规律,数据越平稳说明响应时间变化越小。
Transaction Response Time(各时间段上的事务数):
每个时间段上的事务个数,响应时间较小的分类下的是无数越多越好。
Hits per Second(每秒点击):
当前负载重对系统所产生的点击量记录,每一次点击相当于对服务器发出了一次请求,数据越大越好。
Throughput(吞吐量):
系统负载下所使用的带宽,该数据越小说明系统的带宽依赖就越小,通过这个数据可以确定是不是网络出现了瓶颈。
HTTP Responses per Second(每秒HTTP响应):
每秒服务器返回各种状态的数目,一般和每秒点击量相同。点击量是客户端发出的请求数,而HTTP响应数是服务器返回的响应数。如果服务器的响应数小于点击量,那么说明服务器无法应答超出负载的连接请求。
Connections per Second(每秒连接):
统计终端的连接和新建的连接数,方便了解每秒对服务器产生连接的数量。同时连接数越多,说明服务器的连接池越大,当连接数随着负载上升而停止时,说明系统的连接池已满,通常这时候服务器会返回504错误。需要修改服务器的最大连接来解决该问题。
七、问题分析
分析原则:
分析的信息来源:
7.1错误提示分析
分析实例:
1
分析:
•C、数据库的连接(1、在应用服务的性能参数可能太小了2、数据库启动的最大连接数(跟硬件的内存有关))
2
分析:可能是以下原因造成
7.2监控指标数据分析
1.最大并发用户数:
在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。
如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么OK。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。
2.业务操作响应时间:
3.服务器资源监控指标:
处理器:
CPU资源成为系统性能的瓶颈的征兆:
I/O资源成为系统性能的瓶颈的征兆:
4.数据库服务器:
Oracle数据库:
缓冲区高速缓存命中率:
PS:
造成HTTP-500错误,可能存在的原因
1、运行的用户数过多,对服务器造成的压力过大,服务器无法响应,则报HTTP500错误。
减小用户数或者场景持续时间,问题得到解决。
2、该做关联的地方没有去做关联,则报HTTP500错误。进行手工或者自动关联,问题得到解决。
3、录制时请求的页面、图片等,在回放的时候服务器找不到,则报HTTP500错误,若该页面无关紧要,则可以在脚本中注释掉,问题将会得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应用系统中进行测试,可排除问题。
5、更换了应用服务器(中间件的更换,如tomcat、websphere、jboss等),还是利用原先录制的脚本去运行,则很可能报HTTP500错误。因为各种应用服务器处理的机制不一样,所录制的脚本也不一样,解决办法只有重新录制脚本。
6、Windows xp2与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进行调整后问题解决。
7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
- LoadRunner入门总结
- LoadRunner入门
- loadrunner入门
- LoadRunner快速入门![ZT]
- Loadrunner 入门连载教程
- LoadRunner入门指南
- Loadrunner 常见问题总结
- loadrunner参数化总结
- loadrunner概念总结
- loadrunner参数化总结
- LoadRunner 检查点函数总结
- loadrunner检查点总结分析
- loadrunner关联总结
- LoadRunner常见问题总结
- loadrunner初学者问题总结
- LoadRunner测试总结
- 【loadrunner】webservice测试总结
- 性能测试LoadRunner总结
- 第二周任务3-1
- VC URLEncode & UrlDecode
- 如何解决:新建Android程序的时候发生了找不到/sdk/tools/lib/proguard.cfg文件的错误
- Android问题集锦转载之六:混淆时报错:Conversion to Dalvik format failed with error 1的解决办法
- Tomcat详解
- LoadRunner入门总结
- 关于键盘backspace按键的处理和jqueryz的radio处理
- 三周4
- 64位ubuntu 11.10下android开发环境的搭建(jdk+Eclipse+adt+android sdk详细)
- dll的概念 dll导出变量 函数 类 (转)
- 基于 OAuth 安全协议的 Java 应用编程
- IJDMTOY汽车率领的灯泡购物指南
- Ubuntu File Cache(文件缓存大小)
- 第二周任务3-2