性能测试工具Loadrunner使用经验小结(原创更新版)
1. 引言
1.1. 简介
loadrunner是一种预测系统行为和性能的负载测试工具,它可以轻松创建虚拟用户、创建真实的负载、定位性能问题、重复测试保证系统的高性能
globa-100的注册码:AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000的注册码:AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
对于mms协议:
mms-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
mms-6.5w的注册码AEACFSJI-YJKJKJJKEJIJD-BCLBR
1.2. 组成
1.1.1. Vuser Generator
c语言脚本开发的
1.1.2. Controller
指挥官的作用,控制执行场景
1.1.3. Analysis
收集测试数据,进行结果分析的
1.3. 文档说明
本博客是结合我所在公司性能测试过程中使用loadrunner工具,总结出的经验文档,包括了安装、编写脚本、运行场景3个过程中的注意事项
2. 注意事项
2.1. 安装过程总结
2.1.1. 安装成功loadrunner后启动录制脚本,浏览器总是出不来
这个问题为什么我放到文档第一个,因为这个问题是几乎所有的使用loadrunner的新人都是会碰到的,这个也是一个老生长谈的问题了,所以我把它放到了第一位
出现这个问题的原因,无非就是你的浏览器启动了第三方插件或者PC机有些杀毒软件没有关闭,比如360。所以为了避免出现这个问题,我推荐安装一个VMware Workstation虚拟机中安装XP系统,然后在XP中安装loadrunner,这个可以保证每次使用loadrunner的时候避免因为环境问题,导致碰到困难
2.1.2. 安装出现Microsoft Visual c++2005 sp1安装失败?
1、进入loadrunner-11\Additional Components\IDE Add-Ins\MS Visual Studio .NET
2、安装:LRVS2005IDEAddInSetup.exe
3、再安装loadrunner
2.1.3. 安装出现“计算机缺少vc2005_sp1_with_atl_fix_redist”
在lr安装包里面下“loadrunner-11\lrunner\En\prerequisites\vc2005_sp1_redist”有 vcredist_x86.exe 安装下就可以了
2.2. 编写脚本过程总结
2.2.1. 如何使用录制
1. 在本机的所有程序中打开Vuser Generator,如下图
2. 如下图,在弹出的窗口中,点击New Script按钮
3. 如下图,在弹出的窗口中,选择HTTP/HTML协议后点击Create按钮
4. 如下图,在弹出的窗口选择浏览器和url地址后,点击OK按钮,然后等待弹出浏览器并打开url地址后,就可以进行脚本的录制了
5. 如下图,在进行操作完毕后,点击停止按钮,即可完成录制,loadrunner会自动生成c语言脚本
6. 如下图,即为loadrunner录制的脚本截图,录制的脚本自动在Action()中显示,我们可以参考录制脚本中客户端和服务器之间的数据交互,自己重新编写测试脚本
2.2.2. 事物
为什么用事物
事物Transaction,一般我们用来衡量一个action所消耗的时间,通过它,可以知道一个操作的消耗相应时间,它是作为度量系统性能的唯一指标
如何使用事物
在需要插入事物的请求前面使用快捷键Ctrl+T,然后填写事物名称,点击确定即可完成事物的插入
使用的注意点
1.为事物取名要有意义,比如登入事物,我们一般就用login
2.建议是一个请求设定为一个事物,这样我们分析结果的时候可以更好定位哪个环节的事物耗时多,需要性能调优
3.设置事物后,一定要判断事物成功和失败的条件,既获取请求的返回值是否是预期的结果。是,则事物PASS,否则,事物FAIL
2.2.3. 脚本参数化
为什么要参数化
为了让脚本有更好的适应环境的变化,比如userName、password的变化,于是我们就把userName、password设定为“参数”,然后“参数”通过读取txt等方式获取预制数据,提高脚本适应能力
如何参数化
使用鼠标选择需要作为“参数”的字符串,鼠标右键“Replace with a parameter”,然后在弹出窗口填写参数名、选择类型,再点击【Properties】按钮,在弹出框中设置参数内容和取值方式,即可完成参数化
参数化注意点
1.完成某个字符串参数化后,在调试脚本的过程中,建议直接用快捷键Ctrl+L,打开参数列表
2.在为运行场景的时候,我们一般希望每个用户都是用不同的参数数据,所以在参数列表中我们会预制足够多的数据,并且一般我们会设定读取参数的方式为
Ps:这个可以根据具体情况,自定义
3.loadrunner对于参数的引用是用“{}”作为表示的,所以引用参数的话,不要忘记“{}”
2.2.4. 关联
为什么要关联
对于脚本,很多时候,我们处理数据的时候,是需要对服务端返回的数据进行解析,而服务端返回的数据如果每次都是变化的话,每次我们都是需要动态获取,这个时候就需要关联。简单来说,就是处理服务端返回的动态数据
如何关联
1.录制2次脚本
2.通过loadrunner自带的工具WinDiff对比2次脚本的不同,如下图
3.因为2次脚本操作步骤一样,不同的内容可以根据录制业务分析出得出需要关联地方,如下图1,黄色高亮的地方就是2个相同操作步骤,但是录制脚本对比不同的地方,这个时候我们只要在操作网页中找到出现不同点的html源码处,如下图2;或者也是可以启用Run-time Settrings中所有log设置,然后在进行录制过程中output window找到不同点出现的地方
图1
图2
4.使用函数web_reg_save_param关联动态数据,保存参数,供其他地方使用,这个时候注意使用函数的过程左右边界范围,通过web_reg_save_param关联代码如下,这样就完成了手动关联
web_reg_save_param("iisCore",
"LB/IC=/(S(",
"RB/IC=))/",
"Ord=1",
"Search=All",
LAST);
关联注意点
1.关联函数是在请求函数之前定义的
2.关联数据的时候注意关联函数的左右边界不要写错了
2.2.5. 集合点注意点
集合点就是为了让Vuser集合,然后同时做某个操作,只要在相应的请求前设定有意义的集合点lr_rendezvous即可
2.2.6. 如何使用集合点
2.如下图3,将步骤1中的脚本在Controller中打开,在Controller界面,点击菜单栏Scenario-Rendezvous,然后在弹出的窗口中自定义设置集合点的使用方式,即可完成集合点的简单使用
2.2.6. 脚本调试注意点
1.如下图,在运行时设置窗口,开启日志,这样有利于我们调试脚本
2.如下图,设置回放的时候,打开浏览器快照,在调试脚本的时候,我们可以知道对应脚本相应的界面,图形界面有利于我们调试
2.3. 执行场景过程总结
2.3.1. 执行场景前需要注意点
1.如下图,进入脚本的运行时设置窗口,设置日志为标准。解释:当运行场景时候,假如大量用户碰到异常,如果此时选择输出日志信息,这个输出操作会消耗负载机的资源,使得定位系统性能瓶颈,不能准确判断是负载机问题还是被测系统的问题
2.如下图,在运行时设置中,选择“每次迭代清除高速缓存”。解释:因为压力测试的时候,是模拟不同用户访问服务器,此时不同用户访问肯定会从服务器中下载资源,此时我们就要保证每个用户访问浏览器都是不存在缓存的
3.如下图,在运行设置中,设定脚本的思考时间为“按照录制时记录时间”,因为我们是模拟用户操作,所以操作过程中是需要思考时间
4.如下图,这个也是比较重要的在场景窗口,设置大于负载机实际运行的Vuser数
Ps:假如忘记设置,loadrunner默认一个负载机最大运行Vuser为5000人,当你设置Vuser超过5000人后,运行场景后,超过5000的Vuser会自动失败
2.3.2. 如何使用场景
1. 如下图,在本机的所有程序中打开Controller
2. 如下图,在弹出的窗口中点击Browser按钮,在弹出窗口选择脚本后点击OK
3. 如下图,新增负载机
4. 如下图,在弹出窗口执行下图操作
5. 如下图,验证负载机连接状态
6. 如下图,选择百分比模式,为了可以方便均衡分配负载机人数
7. 如下图,选择负载机和负载机人数
8. 如下图,设置5w人执行脚本,1s/20人的速度开始执行场景
9. 如下图,设置场景执行:一直运行,直到所有人脚本执行完毕
10. 如下图,点击按钮,弹出框点击确定,即可开始执行场景
11. 如下图1,在切换至Run,可以查看运行过程中,所有Vuser运行情况,如图2;日志查看如图3
图1
图2
图3
性能测试工具Loadrunner使用经验小结(原创更新版)的更多相关文章
- 【测试】性能测试及性能测试工具Loadrunner
性能测试简介 软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等.这些都是可以衡量一个软件系统性能好坏的指标.而性能测试是指通过自动化测试工具去模拟多种正 ...
- 性能测试工具——Jmeter使用小结(一)
Apache Jmeter是针对Java的一款性能测试工具,利用该工具可以实现自动化的批量测试和结果聚合,适合做接口压测.今天就来捋一捋软件安装的一些小细节和使用. 一.安装 Jmeter基于JDK, ...
- 性能测试工具---loadrunner
1.什么是参数化参数化:把固定的一个值,变成动态.可变的数组,把数组的值进行值传递.数组大小可控制.2.为什么要使用参数化,2个原因.1.数据库校验字段值的唯一性.(数据库修改字段的唯一性,可避免参数 ...
- 性能测试工具——LoadRunner篇(一)
一.LoadRunner组件 1.Virtual User Generato——r录制最终用户业务流程并创建性能 2.Controller——组织.驱动.管理并发监控负载测试 3.Analysis—— ...
- 性能测试工具LoadRunner中进程运行和线程运行区别
loadrunner controller将使用驱动程序mmdrv运行Vuser.用户可以在controller的run-time setting中选择Vuser的运行方式, 是多进程方式or多线程方 ...
- 《软件性能测试与LoadRunner实战教程》新书上市
作者前三本书<软件性能测试与LoadRunner实战>.<精通软件性能测试与LoadRunner实战>和<精通软件性能测试与LoadRunner最佳实战>面市后,受 ...
- 性能测试工具Jmeter你所不知道的内幕
谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...
- 【腾讯开源】Android性能测试工具APT使用指南
[腾讯开源]Android性能测试工具APT使用指南 2014-04-23 09:58 CSDN CODE 作者 CSDN CODE 17 7833 腾讯 apt 安卓 性能测试 开源 我们近日对腾讯 ...
- 性能测试工具LoadRuner你所不知道的内幕
谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...
随机推荐
- android studio 调试技巧(简直太好用)
android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...
- 工作和面试中的gdb
gdb是C/C++程序员必备的专业技能,工作中gdb最常用的场景有两个,一个是分析core文件,另一个是调试程序. 分析core文件的方法如下: 1.gdb 程序名 core文件名 2.bt或wher ...
- 【翻译】理解 LSTM 网络
目录 理解 LSTM 网络 递归神经网络 长期依赖性问题 LSTM 网络 LSTM 的核心想法 逐步解析 LSTM 的流程 长短期记忆的变种 结论 鸣谢 本文翻译自 Christopher Olah ...
- 20155209 2016-2017-2《Java程序设计》课程总结
20155209 2016-2017-2<Java程序设计>课程总结 预备作业1 刚刚接触Markdown的写法,刚刚接触博客,简单了解娄老师的教学方式. 预备作业2 怎么将学习java像 ...
- 实验四android开发基础
实验四android开发基础 提交点一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd) ...
- 20155315 2016-2017-2 实验二《Java面向对象程序设计》实验报告
实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验知识点 1.参考Intellj I ...
- 20155327 2016-2017-2 《Java程序设计》第10周学习总结
20155327 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. ...
- WEB项目日志分析系统思考
一.为什么需要日志分析系统 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈 ...
- 【转载】Direct3D基础知识
原文:Direct3D基础知识 重新从头开始学习DX,以前太急于求成了,很多基础知识都没掌握就开始写程序了,结果出了问题很难解决. 1. D3D体系结构 D3D与GDI处与同一层次,区 ...
- TCP的三次握手和四次分手
TCP的三次握手 图解: • 第一次握手:客户端发送syn包到服务器,并进入syn_send状态,等待服务器进行确认: • 第二次握手:服务器收到客户端的syn包,必须确认客户的SYN,同时自 ...