Load Runner 相关概念解析集合点1)集合点用以同步虚拟用户以便恰好同一时刻执行任务。
在没有性能测试工具之前,要实现用户的并发是很困难的,最常见的方法就是把公司的所有或者部分员工召集起来,有一个同志喊123开始。
然后大家一起提交数据。
2)Load Runner的集合点则可以完全实现用户的同步问题,而且可以模拟成千上万的用户操作是轻而易举的事情。
3)集合点的设置方法A.在录制过程中可以设置集合点。
B.在使用Load Runner的Controller进行负载时,可以通过依次选择【Scenario】>【Rendezvous…】项实现。
C.可以选择某个虚拟用户后单击enable rendezvous或disable rendezvous.可以设置许启用或者禁止某个集合点.D.可以设置集合点策略,在Rendezvous information,点击Policy按钮。
这个很重要。
有三种情形。
E.在集合点设计策略窗体中也可以设计集合点释放比例。
还可以设置Timeout between Vusers虚拟用户之间的超时间隔。
一般默认是30秒。
可以根据实际情况进行设置。
事务事务是要度量其服务器响应时间的任务或操作集。
一个完整的事务由事务开始、事务结束以及一个或多个业务操作/任务构成。
重点提示事务必须是成对出现,即一个事务有事务开始,必然要求有事务结束。
不要将Lr_think_time放在事务里,影响分析和统计,除非有特殊的情况需要这么做。
检查点检查点的作用是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。
添加检查点方法:切换到脚本数视图,然后在左侧切换到“Server response”页,然后添加一个文本Add a Text check。
也可以检查图片。
P14重点提示检查点设置完成后,要保证检查点能使用,需要在Run Time settings –Preferences >Enable Image and Text check 复选框选上,否则的话检查点失效。
思考时间用户在执行两个连续操作期间等待的时间称为思考时间。
LoadRunner 在录制脚本的时,虚拟用户产生器将录制实际的停留等待时间并将等待时间插入到脚本,脚本中lr_think_time函数即为思考时间。
✓可以在Run-time Setting(运行时设置)来决定是否使用思考时间,也可以设置如何使用思考时间。
Load Runner基本使用1协议的选择LR协议的正确选用,关系到脚本是否能够正确录制与执行,十分重要,因此在进行程序的性能测试之前,测试人员必须弄清楚被测试的程序使用的是什么协议。
2脚本的创建过程P19✓第一步选择正确的协议和默认浏览器(针对web应用)进行脚本录制✓第二步脚本优化与调试,参数化、事务、集合点、检查点的应用,在必要的情况下可以加入逻辑或者其他控制。
✓第三步脚本的执行3脚本的参数化P29✓Insert> New Parameter…进行参数化设置✓数据分配方法:在Select Next row 列表中选择一个数据分配方式,一般包括Sequential(顺序)、Random(随机)、Unique(唯一)。
✓数据更新方式(P30):在Update value on 列表中选择一个数据更新方式。
✓更真实的模拟用户的情景更真实模拟用户的行为。
脚本录制及优化1录制脚本以及Action的划分1.选择正确的协议B\s结构,一般选择Web(html\http)2.Vuser_init 是脚本初始化的过程,我们将一部分的验证程序的脚本放在这里面,来完成要验证程序的初始化。
初始化的过程在验证的时候只执行一次。
3.Action是我要验证业务的过程,我要将验证的的事务放在这部分,来完成要验证的系统性能,Action可以划分多个。
4.Vuser _end是脚本退出的过程,我们将我们不验证的内容放在这个,来完成脚本的退出操作。
这部分的脚本也是执行一次.关于录制脚本参数的选择:HTML-based script与URL-based script的脚本的区别:使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
选择哪种模式应该根据实际需要来进行,下面是一些常见的参考原则:1.基于浏览器的应用程序推荐使用HTML-based script2.不是基于浏览器的应用程序推荐使用URL-based script3.如果基于浏览器的应用程序中包含了java script,并且该脚本向服务器发送了请求,比如DataGrid的分页按钮等,推荐使用URL-based script;4.基于浏览器的应用程序中使用了HTTPS安全协议,建议使用URL-based script方式录制.如果使用HTML-based script模式录制后不能成功回放,可以考虑改用URL-based script模式来进行录制,因为这种情况多是上面所列举的情况所引起的。
2脚本回放在脚本录制完成以后,我们要进行编译,compile(shift+f5),还可以进行单步调试f10。
脚本验证通过,不一定代表在load过程就能通过,因为loadrunner的是底层数据流的方式来产生压力的。
这点与QTP是不同的,qtp是记录事务的操作。
3脚本优化1.添加事务点,并且加入事务点的注释。
添加事务点有三种方式,第一种通过函数直接添加lr_start_transaction (“事务点名称”);lr_end_transaction(“事务点名称”,返回的值). 第二种,图形界面的方法;第三种,insert 也有添加事务的工具。
2.添加集合点3.设置参数化第一种,在要参数化的值上直接进行参数化;第二种,就是新建一个参数化的值,然后进行替换。
使用parameters list参数列表来新建参数,然后点击参数化的值,鼠标右键选择用一个已存在的参数值来替换。
添加一个日志输出函数,来验证你所使用的参数化是否实现。
一般在事务结束的时候来进行日志输出,如:lr_log_message(“用户名:s%”,lr_eval_string (“username”) );4.设置检查点要注意手动开启检查点。
Lr_reg_find(“Text=登陆”,”savecount=sum”,”search=body”,last);在实务结束的时候加lr_log_message(“用户名:s%”,lr_eval_string (“username”) );if (strcmp(lr_eval_string(“{sum}”),”0”)==0)lr_log_message(“登陆失败”);elselr_log_message(“登陆成功”);优化是根据需要进行的。
4脚本验证1.在运行脚本前先进行编译查看有没有语法错误,看回放日志。
2.脚本在运行时存在错误,我们可以通过回放日志(replay log)来进行查看。
3.设置错误的输出如上面设置的检查点。
性能测试场景设计场景设计根据实际的业务情况来模拟用户,最好模拟用户的实际情况。
Run-time setting设置Ramp up初始化人数,During持续时间,Ramp down 减压初始化递减。
在运行前初始化所用用户checkbox应该勾上,在运行前初始化所用用户thinktime时间,要进行设置。
添加监控图我们可以根据实际情况,来添加服务器的系统资源监控。
我们需要在负载模拟其中添加服务器的监控参数。
查看运行时的数据可以查看运行时候的数据来观察系统情况。
Load Runner 关联函数1.什么是关联?2.为什么要进行关联?3.如何进行关联?对于关联有自动关联和手动关联两种,一般采用自动关联,对于关联一般我们要在脚本里,设置关联数据的存储大小。
一般在调试负载测试脚本中常见。
LoadRunner测试结果分析当性能测试结束后,我们将要进行结果分析,在分析之前我们要进行数据收集工作,点击控制面板第三个按钮。
我要注意服务器的性能,CPU使用率(processor time)、内存使用率(Available)、吞吐量常见Error解决办法1.Failed to Initialize. Reason: TimeOut虚拟用花初始化超时可以在controller-tools-timeout,修改command timeout(seconds), 可以解决初始化超时问题。
2.Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)解决方法:●在脚本中runtime setting选项中可以设置这个问题,runtime setting-internetprotocol-perferences-options advance 中设置默认为step download timeout的时间为最大。
●设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选择后再回放就成功了3.Error -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Resource Page Timeout is a Warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively [MsgId: MERR-27727]Action.c(34): web_link("****") highest severity level was "ERROR", 14506915 body bytes, 547 header bytes [MsgId: MMSG-26388]Ending action Action.解决方法:4.vuser_init.c(19): Continuing after Error -27782: Timeout (120 seconds) exceeded whilewaiting to receive data for URL http://221.122.59.57:7005/chep解决方法:在Controller中,Tools-timeout修改修改command timeout(seconds),对于虚拟用户vuser 的值。