VuGen

上一篇 / 下一篇  2012-03-12 14:03:03 / 个人分类:LR

1、安装与破解与卸载:
①安装:安装包不能放在有汉字的目录下
①破解:将lm70.dll、mlr5lprg.dll复制到LR8.1安装目录下的bin文件夹下
⑴全协议license(100):AEAMAUIK-YAFEKEKJJKEEA-BCJGI
Web协议license(10000):AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
⑴Web协议license(65000):AEACFSJI-YJKJKJJKEJIJD-BCLBR
①卸载:删除wlrun.*、vugen.*、运行deletelicense.exe将自动删除注册表项


2、流程:
测试流程:计划负载测试--创建Vuser脚本(*.usr)--定义场景(*.lrs)--运行场景(*.lrr)--分析结果(*.lra)
①录制流程:录制脚本--增强/编辑脚本--配置运行时设置--验证脚本--集成脚本进行负载测试
①分析流程:结果摘要--用户并发数--事务响应时间--每秒点击数--业务成功率--系统资源--网页细分图--Web Server--DB Server


3、原理:
3-1、VuGen用户生成器原理:Client--VuGen--Server(Web Server/DB Server)
①录制Client与Server间的通信数据(回放与加压时使用)。录制时与Client有关,回放与加压时与Client无关(不会启动Client),而是把保存的通信数据直接发送到Server
①它们最好在同一局域网防火墙内且关闭自身防火墙
3-2、Controller负载生成器原理:Controller--Load Generation--Server(Web Server/DB Server)
3-3、Load Generation负载生成器原理:需启动LoadRunner Agent Process服务进程来监听Controller中的指令,否则Controller无法连接Load Generation
①它们最好在同一局域网防火墙内且关闭自身防火墙
3-4、Analysis结果分析器原理:就是一个单独的程序


4、脚本组成:
①Init、Action(Vuser可重复Actions中的步骤)、End
⑴脚本记录的是Client对Server的会话,日志记录的是Client与Server两者的会话
⑴return 0:完成本次迭代,进入下次迭代


5、视图:
①输出窗口:
①动态运行:回放时脚本行高亮显示
①测试结果:
①快照:查看快照、已回放、已录制与回放(树视图--页面视图)
⑴录制期间捕获一张快照,回放期间捕获一张快照,通过比较可确定需要关联的动态值
①脚本视图:
①树视图:树视图/缩微图--页面视图/客户端请求(Request--Header/Body)/服务器响应(Response--Header/Body)


6、输出日志:
①回放日志(Replay Log):回放时的日志信息
⑴双击回放日志消息行,定位脚本函数
⑴右键脚本函数--转至重播日志中的步骤,定位回放日志消息行
⑴选择回放日志消息行/脚本函数+F1,定位联机帮助
①录制日志(Recording Log):录制时的日志信息。录制中的Events条数就是此日志中的信息行数
①生成日志(Generation Log):所有Client与Server交互协议时的日志信息。VuGen随后会对交互协议进行分析,最终生成脚本


7、Vuser--运行时设置:
7-1、运行逻辑:回放的次数
①回放目录:脚本目录--result
①回放迭代目录:脚本目录--result--Iteration1、Iteration2...
①场景目录:res--log--每用户每日志(log_1、log_2、...)、每日志多迭代(log_1中迭代1、迭代2...)
7-2、步:回放间的等待时间
7-3、日志:启用日志记录。它只影响lr_log_message函数。Controller中日志默认是关闭的
①仅在出错时发送消息:
①始终发送消息:调试后关闭,否则影响磁盘效率
①标准日志:
①扩展日志:
⑴参数替换:记录Vuser脚本运行时使用的参数和值
⑴服务器返回的数据:记录从Server返回Client的所有消息
⑴高级跟踪:记录所有Vuser消息与函数调用
7-4、思考时间:步骤之间用户停止以思考的时间
7-5、其它:
①按线程/进程运行Vuser:让每个Vuser创建一个线程/进程运行程序(线程方式运行压力更大),一个线程/进程就是一个Uver用户
⑴Web(HTTP/HTML)协议时每线程Vuser占500K内存,每进程Vuser占5M内存
①将每个Action/步定义为一个事务:将脚本中每个Action/步骤视为一个事务
①出现错误时仍然继续:lr_continue_on_error(1); web_link("test", "text = wwwwww.book.com", LAST); lr_continue_on_error(0); lr_output_message("finish"); 输出finish
7-6、浏览器仿真:
①更改:使用自定义浏览器
⑴默认浏览器:IE--工具--Internet选项--程序--检查Internet Explorer是否为默认的浏览器
⑴录制时不弹出浏览器:IE--工具--Internet--高级--去掉启用第三方浏览器扩展(需要重启动)
7-7、首选项:
①启用图像和文本检查:
①选项:http超时设置


8、工具:
①重新生成脚本:根据生成日志重新生成Vuser脚本


9、工具--常规选项:
9-1、回放:
①动态运行延迟:每个函数运行间延迟XX毫秒
①提示选择结果目录:每次回放提示是否新建result文件夹
①回放后显示:回放之前查看(转到脚本)、回放概要(转到回放概要)、可视测试结果(转到测试结果)
9-2、环境:
①保存自动恢复信息,每隔X分钟:
①自动显示函数语法:
9-3、显示:
①在回放时显示浏览器、自动排列窗口:
①执行脚本期间生成报告:


10、工具--录制选项:
10-1、高级:支持字符集--UTF8(脚本乱码)
10-2、录制:Web(HTTP/HTML)协议是录制浏览器的协议
①基于HTML的脚本(Mode_HTML):基于浏览器程序的录制。一个页面,一条语句
⑴描述用户操作的脚本:直接创建web_url、web_submit_form、web_link、web_image等函数
⑴仅包含明确URL的脚本:web_url、web_link、web_image都被录制为web_url函数,web_submit_form被录制为web_submit_data函数
①基于URL的脚本(Mode_HTTP):基于非浏览器程序的录制,它可包含小程序、非浏览器程序、Applet、JS、HTTPS等程序。一个请求,一条语句


11、事务:
①插入--开始事务/结束事务
⑴事务时间=事务时间-思考时间
①事务状态:它是在HTTP层根据HTTP状态码来判断(树视图--服务器响应--HTTP/1.1 200 Ok)
⑴LR事务状态反映的是函数本身与Server是否正确响应,与业务逻辑本身是否正确无关(登录失败,脚本依然可以通过,因为函数本身是正确的)
⑴检查点是在应用层判断,所以应以应用层为准


12、集合点:
①VuGen:插入--集合点
①Controller:场景--集合点


13-1、检查点:
①录制时--插入文本检查点
①树视图--选中某图--脚本视图--在光标定位脚本函数上一行--插入--新建步骤--服务--web_reg_find
⑴确保查找的内容是写在HTML源文件中,而不是控件中
①web_image_check("web_image_check",LAST):查找指定图像
①web_find("web_find","What=123",LAST):查找指定文本(只支持HTML模式)
①web_reg_find("Text=123",LAST):查找指定文本
①web_reg_find("Text=123","SaveCount=count",LAST):查找指定文本
⑴注册函数:使用的是缓存中的数据、函数置于前
⑴普通函数:使用的是完全显示后的数据、函数置于后


14、参数化:
14-1、参数化:
①新建参数化:(脚本视图)右键常量--替换为新参数、(脚本视图)选择常量--插入--新建参数、(树视图)双击步骤--属性对话框--常量ABC
①还原参数化:右键参数--还原初始值
①使用现有参数化:右键常量--使用现有参数--从参数列表中选择
①参数列表:Vuser--参数列表
⑴新建:新建参数文件,但未应用
⑴删除:删除参数及参数文件
14-2、参数类型:参数类型决定了数据源
①DateTime:用于日期/时间
①File:文件
①Group Name:
①Iteration Number:使用当前迭代次数代替
①Load Generator Name:使用Vuser所在的Load Generation名代替
①Random Number:使用设置范围内的随机数代替
①Table:
①Unique Number:使用第一个数以及递增的数代替
①User Defined Function:从用户开发的dll文件提取的数据代替
①Vuser ID:使用由Controller为Vuser创建的ID代替
14-3、数据源:
①文件/表参数:VuGen新建的ASCII文件、现有的ASCII文件、导入数据库文件
⑴导入数据库数据:文件参数属性--数据向导--手动指定SQL语句--创建--机器数据源--数据源名称--SQL语句
⑴参数数据表只显示前100行数据。可在文件路径框中打开现有数据文件*.dat。使用非英语语言工作时将参数文件另存为UTF-8文件(记事本中另存为)
①内部数据参数:Vuser运行时自动生成的。DateTime、Iteration Number、Load Generator Name、Random Number、Unique Number、Vuser ID
①自定义函数参数:使用外部DLL中的函数生成的数据
14-4、文件/表参数数据分配与更新:
①选择下一行(数据分配):Sequential顺序、Random随机、Unique唯一、Same line as NewParam同一行参数(两参数时出现,与参数表无关)
⑴Same line as NewParam:两参数,同一数据源,参数1取某行,参数2随参数1取某行,参数2选择Same line as NewParam且取第2列(在参数列表中操作方便)
①更新值的时间(数据更新):Each Occurrence每次发生、Each iteration每次迭代、Once唯一
①当超出值时:选择数据分配唯一时,中断Vuser/Abort Vuser、以循环方式继续Continue in a cyclic manner、使用最后的值继续Continue with last value
①char *num1, *num2;
⑴num1="{NewParam}"; num2="{NewParam}";
⑴lr_output_message("%s %s", lr_eval_string(num1), lr_eval_string(num2));
⑴2用户、2迭代、10数据:
①每次迭代+顺序:每次迭代,Vuser顺序提取下一值。1 1、2 2(迭代11次时1 1)
⑴每次迭代+随机:每次迭代,Vuser随机提取下一值。9 9、4 4
⑴每次迭代+唯一:每次迭代,Vuser唯一提取下一值。1 1、2 2(迭代11次时报错)
①每次发生+顺序:参数出现,Vuser顺序提取下一值。1 2、3 4(迭代6次时1 2)
⑴每次发生+随机:参数出现,Vuser随机提取下一值。5 9、2 7
⑴每次发生+唯一:参数出现,Vuser唯一提取下一值。1 2、3 4(迭代6次时报错)
①一次+顺序:第一次迭代时顺序提取的值,用于所有Vuser的所有迭代。1 1、1 1
⑴一次+随机:第一次迭代时随机提取的值,用于所有Vuser的所有迭代。6 6、6 6
⑴一次+唯一:第一次迭代时顺序提取的值,用于所有Vuser的所有迭代。1 1、1 1


15、关联:
15-1、自动关联:
①Vuser--运行时设置--首选项--启用图像和文本检查
①工具--录制选项--关联--在录制期间启用关联--选择相应协议
①录制--插入文本检查点(用户名)--回放失败
①Vuser--扫描要关联的脚本--关联结果选项卡--条目--Correlate
⑴树视图--服务器响应--动态差异数据(Vuser--运行时设置--日志--扩展日志--服务器返回的数据)
⑴web_reg_save_param("WCSParam_Diff1", "LB=userSession value=", "RB=>", "Ord=1", "Search=Body", LAST):自动添加关联函数。Ord表示将第一个适合的数据关联(默认)
⑴Value={WCSParam_Diff1}:动态数据自动替换为参数名
①回放成功
15-2、手动关联:
①Vuser--运行时设置--首选项--启用图像和文本检查
①工具--录制选项--关联--在录制期间启用关联--选择相应协议
①录制--插入文本检查点(用户名)--回放失败
①Vuser--扫描要关联的脚本--关联结果选项卡--空
①视图--测试结果--出错步骤--相关提示(probably a bad user session value)
①录制两份相同脚本--工具--与Vuser比较--找出动态差异数据(Value=xxx)
①Vuser--运行时设置--日志--扩展日志--服务器返回的数据
①回放--回放日志--查找动态差异的变量(Server每次返回的Value数据都不同)--确定左右边界(name=userSession value=、>)--双击消息行定位脚本函数
①插入--新建步骤--web_reg_save_param("session_name", "LB=name=userSession value=", "RB=>", "Ord=1", "Search=Body", LAST);
①将动态数据替换为参数名Value={session_name}
①Vuser--运行时设置--日志--扩展日志--参数替换、脚本尾部插入lr_output_message(lr_eval_string("{session_name}"));
①回放成功


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 3764
  • 日志数: 7
  • 建立时间: 2012-02-27
  • 更新时间: 2012-03-12

RSS订阅

Open Toolbar