loadrunner工具使用之脚本创建
loadrunner工具使用之脚本创建
一、创建脚本
1、打开loadrunner,选择第一个控件VuGen(创建/编辑脚本),点击
如果测试系统包含多个协议,选择新建多协议脚本,选择目标协议,点击创建,如图:
2、URL地址输入被测系统地址,其他选项默认。如果被测系统不兼容IE,需要修改相应配置:应用程序类型选择Win32应用程序,要录制的程序栏选择支持浏览器.exe执行程序的绝对路径。
3、点击确定,进入录制界面,如图:
录制过程中可以进行一些操作,如点击插入开始事务和插入结束事务
4、点击停止
二、脚本优化
录制的脚本中会有些无用的请求,需要对把无用的脚本进行删除,如web_add_cookie信息,和其他无用的访问路径。可以根据访问的URL判断是否是需要的请求。
三、参数化
1、选择脚本中需要参数化的数据,右键选择替换为参数(Replace with a parameter),点击属性(proterties),可以选择添加行/列,如果参数化数据量比较大,选择用记事本编辑。
2、选择参数的方式可以通过模拟参数的方式进行查看(部分组合可以模拟),根据输入模拟的Vuser数,来模拟用户取值情况。
参数组合方式:
|
更新方法 |
数据分配方法(data assignment methed |
||
|
sequential |
random |
unique |
|
|
each iteration |
vuser每次迭代都从数据表中获取下一个数据 |
vuser每次迭代都从数据表中获取一个新的数据 |
vuser每次迭代都从数据表中获取下一个唯一性的数据 |
|
each occurrence(data files only) |
每当遇到参数时,vuser就从数据表中获取下一个数据,在同一个迭代中遇到多次也是如此 |
每当遇到参数时,vuser就从数据表中获取一个新的数据,在同一个迭代中遇到多次也是如此 |
每当遇到参数时,vuser就从数据表中获取下一个唯一行的数据,在同一个迭代中遇到多次也是如此 |
|
once |
vuser第一次迭代取得的数据也将为vuser后续的迭代重复使用 |
vuser第一次迭代时取得的数据也将为该vuser后续的所有迭代重复使用 |
vuser第一次迭代所获取的的唯一性的数据,也将为该vuser后续的所有迭代重复使用。 |
四、事务
事务可以再录制过程中添加,也可以在录制后添加,添加事务是为了获取事务范围内操作脚本的执行时间。也可以用于通过录制过程中添加事务来判断操作对应的脚本。
开始事务:lr_start_transaction("事务名称");
结束事务:lr_end_transaction("事务名称",
LR_AUTO);
添加登陆事务实例:
|
lr_start_transaction("登陆"); web_submit_data("login;jsessionid=3F5B12DE3B0CA05A4503CFD38E8852BB", "Action=http://{url}:8080/cas/login;jsessionid={CorrelationParameter_1}?service=http%3A%2F%2F10.20.30.32%3A8080%2FSMP%2Fj_spring_cas_security_check", "Method=POST", "RecContentType=text/html", "Referer=http://{url}:8080/cas/login?service=http%3A%2F%2F10.20.30.32%3A8080%2FSMP%2Fj_spring_cas_security_check", "Snapshot=t3.inf", "Mode=HTML", ITEMDATA, "Name=username", "Name=password", "Name=lt", "Name=execution", "Name=_eventId", EXTRARES, "URL=../favicon.ico", LAST); lr_end_transaction("登陆", LR_AUTO); |
五、集合
集合点是用于放在目标操作之前,用于使目标达到一定的用户数,同时执行目标操作,从而实现并发的目的,集合点函数:lr_rendezvous("test");
六、关联
关联是为了解决动态session的问题,录制的脚本需要经过回访后,CTRL+F8来扫描脚本中存在的关联。
关联函数:web_reg_save_param("参数名","LB=左边界‘,"RB=右边","Ord=All",LAST);
场景:当录制完脚本后,回访过程中,执行日志各项事务执行成功,但是程序结果没有达到预期效果,这时考虑程序中是否需要进行关联操作。
例:
|
web_reg_save_param( "ParamName=CorrelationParameter_1", "LB=hzcf.tokens.", "RB=\"/>\r\n<input SEARCH_FILTERS, "Scope=Body", "RequestUrl=*/investConfirm*", LAST); web_submit_data("invest", "Action=http://10.10.10.62:8080/hzcf-0.0.1/invest/finance/invest", "Method=POST", "RecContentType=application/json", "Referer=http://10.10.10.62:8080/hzcf-0.0.1/invest/finance/investConfirm", "Snapshot=t9.inf", "Mode=HTML", ITEMDATA, "Name=finance_id", "Name=fprodId", "Name=fprodName", "Name=closeTime", "Name=totalAmount", "Name=investAmount", "Name=repay_style", "Name=yearRate", "Name=payAccount", "Name=reinvestId", "Name=chnId", "Name=hzcf.token.name", "Name=payPasswd", LAST); |
七、常见问题
问题现象:录制过程中事件数为0。
解决方法:
1、录制过程中尽量使用IE或者火狐浏览器,将使用录制的浏览器设置成默认浏览器,且录制之前,先将浏览器关闭;
2、打开IE-工具-Internet选项-高级-启用第三方浏览器扩展:去掉勾选;系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe;
3、浏览器版本兼容性问题,更换浏览器版本;
4、打开IE浏览器,工具-管理加载项,将BHOManager
Class状态设置为启用。
loadrunner工具使用之脚本创建的更多相关文章
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- LoadRunner:VuGen开发脚本步骤(一)
一.测试过程 1.规划测试:分析应用程序.定义测试目标.方案实施. 2.创建Vuser脚本. 3.创建方案:方案包括运行 Vuser 的计算机的列表.运行 Vuser 脚本的列表以及在方案执行期间运行 ...
- SVN管理工具Cornerstone之:创建分支、提交合并
创建工程的分支: 步骤: 1.选择左下角仓库repositories中的工程名->选择trunk->点击Branch->在提示框里填写分支名称create, 2.在做上角work ...
- FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...
- LoadRunner录制HTTPS协议脚本
学习LoadRunner录制HTTPS协议脚本,其实是一个意外的收获.当我拿到要测试的URL时,我像以前的步骤一样录制脚本,但是录制结束后,发现并没有生成脚本,开始以为是LoadRunner的原因,我 ...
- 二、初步认识LoadRunner工具
LoadRunner工具有三个组成分别是: Virtual User Generator:用户行为模拟:录制运行脚本. Controller:上面的录制一个用户操作,这个可以将其克隆成多个用户,模拟多 ...
- 『动善时』JMeter基础 — 46、使用Badboy工具录制JMeter脚本
目录 1.使用Badboy录制JMeter脚本 2.使用Badboy参数化配置 3.解决"当前页面的脚本发生错误"提示框 4.总结 1.使用Badboy录制JMeter脚本 打开B ...
- LoadRunner编写socket性能测试脚本
利用LoadRunner编写socket性能测试脚本 一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socke ...
- BlazeMeter发布chrome扩展插件,支持JMeter脚本创建
BlazeMeter发布chrome扩展插件,支持JMeter脚本创建http://www.automationqa.com/forum.php?mod=viewthread&tid=3898 ...
随机推荐
- IOS网络开发(二)
1 局域网群聊软件 1.1 问题 UDP协议将独立的数据包从一台计算机传输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方所接收到的数据和发送方所发送的数据在内容和顺序上是完全一 ...
- TCP链接时主动close时可能的rst报文
阿里核心系统团队博客http://csrd.aliapp.com/?p=1055记录了主动关闭TCP socket时,可能不发fin包,而是发rst的问题. 其原因是主动关闭socket时,若接收bu ...
- MongoDB学习笔记三:查询
MongoDB中使用find来进行查询.查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合.find的第一个参数决定了要返回哪些文档,其形式也是一个文档,说明要执行的查询细节.空的查询 ...
- libtcc使用问题一二
问题来由: powersniff(参考博客的文章,在qq群下载最新版本)目前使用lua作为分析插件,但熟练lua的人不多.所以,移植python和tcc两类语言作为插件. tcc(即tiny c),h ...
- asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天
可以使用My97 Date Picker组件来收集用户输入的日期值. 首先下载该组件:http://www.my97.net/dp/index.asp放到自己的项目中. 然后在项目里面引用js和css ...
- UI Automator Viewer获取手机镜像时报错
使用UI Automator Viewer获取手机镜像时报错,具体信息如下: Error while obtaining UI hierarchy XML file: com.android.ddml ...
- Nginx日志导入到Hive0.13.1,同步Hbase0.96.2,设置RowKey为autoincrement(ID自增长)
---------------------------------------- 博文作者:迦壹 博客地址:Nginx日志导入到Hive,同步Hbase,设置RowKey为autoincrement( ...
- HTML5能取代IOS原生应用吗
介绍 移动应用程序(App)和HTML5都是目前最火的技术,二者之间也有不少重叠之处.在移动设备浏览器里运行的html5的web页面,也可以重新打包成不同平台上运行的app.目前很多浏览器都有很好的跨 ...
- Oracle正确删除archivelog文件(转)
from:http://www.itpub.net/thread-1636118-6-1.html Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而 ...
- [家里蹲大学数学杂志]第013期2010年西安偏微分方程暑期班试题---NSE,非线性椭圆,平均曲率流,非线性守恒律,拟微分算子
Navier-Stokes equations 1 Let $\omega$ be a domain in $\bbR^3$, complement of a compact set $\mathca ...