一、设置集合点集合点可以控制各个Vuser以便在同一时刻执行任务,借助集合点,可以在loadrunner中实现真正意义上的完合一样的并发。当使用集合点时,可以在系统上模拟较重的用户负载。当某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。当满足集合条件时,Controller释放Vuser,这样可以产生非常密集的同一类用户操作或请求。Vuser从集合释放后,将执行脚本中的下一个任务。集合点一般会创建在用户事务的开始标志彰。只能在脚本的Action部分(而不是init或end部分)添加集合点。Lr_rendezvous(“集合点名”)如何设置集合点-录制登录testlink脚本为例:1.从菜单中选择运行VirtualUserGenerator,在NewVirtualUser窗口选择Web(HTTP/HTML)协议,点击“Create”按钮。2.在弹出的窗口中输入要录制的url地址=expired,并选择RecordintoAction为vuser_init,点击OK正式开始录制,这时会自动打开登录主页面。3.点击工具条“暂停”按钮暂停录制,并选择“RecordintoAction”为Action,在登录主页面输入用户名XXX,密码XXX,点击“login”按钮进行登录,登录成功后点击工具条“停止”按钮结束录制,登录脚本录制成功。4.在脚本Action部分右键选择“Insert→StartTransaction”弹出一个对话框,输入一个事务名字login,点击OK,“StartTransaction”插入完成后,还需要插入一个“EndTransaction”,用以标识事务结束。5.在开始事务前插入集合点,右键选择“Insert”→“rendezvous”弹出一个对话框,输入集合点名字为login,点击OK集合点设置完毕。二、手动设置检查点为了检查web服务器返回的网页结果是否正确,VuGen支持在脚本中插入Test/Imag检查点。检查点有两种图片和文字。可以用三个函数实现:web_find()web_reg_find()web_image_check()1.web_find()函数函数作用:在HTML页面中查找相应的内容参数举例:web_find(web_find,RighOf=a,LeftOf=b,What=name,LAST);参数解释:web_find定义该查找函数的名称;“LeftOf”和“RighOf=”用来定义查找字符的左右边界;“What=”定义查找内容。例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息函数用法:该函数是在查找页面中的内容,所以要放在要查找的内容的后面。注意事项:1.使用该函数时,要在Vuser-Run-TmeSettings中勾选EnableImageandtextcheck,系统默认是不勾选该选项的。2.函数只能在基于HTML模式录制的脚本中进行查找。查找用户是否登录testlink成功信息-Testlink1.8.5[testdesingner]1.切换到Treeview视图,选择action中树形菜单需要插入检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insertafter,如图:2.在弹出的对话框中选择“TestCheck”,点击“OK”出现TextCheckProperties对话框,在“searchfor”中填入需要查找信息“TestLink1.8.5:XXX[testdesigner]”,点击“确定”完成添加text检查点。3.切换到scriptview视图,可以看到插入test文本检查点函数web_find(),点击“回放”按钮进行搜索所要查询的文本,在replayLog日志中可以看到Action.c(38):web_findsuccessful.1occurrence(s)ofTestLink1.8.5:XXX[testdesigner]found(RightOf=,LeftOf=)[MsgId:MMSG-27196]Action.c(38):web_findwassuccessful[MsgId:MMSG-26392]2、web_reg_find()函数函数作用:在缓存中查找相应的内容参数举例:web_reg_find(Search=Body,SaveCount=ddd,Text=aaa,LAST);参数解释:1.Search用来定义查找范围,默认All,也可选择“headers”或body”部分2.SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到3.Text用来定义查找内容4.Failif指定在任何情况下报错,有“NotFound”和“Found”两种选择A.web_reg_find(Text=testlink,Fail=NotFound,LAST);或者B.web_reg_find(Text=testlink,Fail=Found,LAST);代码思路:1.“testlink为你要检查的文本;2.若是A代码:脚本执行到此处,若没有找到check的字符串,脚本将FAIL,并且停止执行下去。反之,则一直执行下去。3.若是B代码:脚本执行到此处,若找到check的字符串,脚本将FAIL,并且停止执行下去。反之,则一直执行下去。函数用法:该函数是在缓存中查找相应的内容,所以要放在查找内容之前。查找用户XXX是否登录testlink成功信息-Testlink1.8.5[testdesingner]1.切换到Treeview视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insertbefore,如图:2.在弹出的对话框中选择“web_reg_find”,点击“OK”出现FindText对话框,在“searchforspecifictext”中填入查找信息“TestLink1.8.5:XXX[testdesigner]”,在“searchin”设置查询范围默认“All”,定义Savecount计数变量为“regcheck”,Failif选择“NotFound”点击“OK”完成添加test检查点。3.切换到scriptview视图,可以看到插入test文本检查点函数web_reg_find(),点击“回放”按钮进行搜索所要查询的文本,在replayLog日志中可以看到Action.c(29):Registeredweb_reg_findsuccessfulforText=TestLink1.8.5:XXX[testdesigner](count=1)[MsgId:MMSG-26364]检查点-打印验证web_reg_find()函数:lr_start_transaction(login);web_submit_data(login.php_2,Action=…LAST);web_reg_find(Fail=NotFound,Search=All,SaveCount=regcheck,Text=TestLink1.8.5:XXX[testdesigner],LAST);web_url(index.php,...LAST);//判断regcheck是否大于1,如果大于1,检查结果正确,使用lr_output_message打印,可以供调试时查看//如果检查结果错误,使用lr_error_message打印,可以在control的errors中显示错误if(atoi(lr_eval_string({regcheck}))0){lr_output_message(成功!);}else{lr_error_message(失败);}lr_end_transaction(login,LR_AUTO);3.web_image_check()函数函数作用:在页面中查找一个具体的图片。参数说明:web_image_check(web_image_check,Alt=,Src=\'#\'/span参数解释:“Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值。src表示该图片文件的路径,alt表示图片的替代显示文本(在需要检查的页面上右键查看源文件,找到该图片的src和alt值)函数用法:该函数是在缓存中查找相应的内容,所以要放在查找内容之前。注意事项:使用该函数时,要在Vuser-Run-TmeSettings中勾选EnableImageandtextcheck,具体操作请看web_find()中的注意事项例如:查找用户使用testlink图标-company_logo.png1.切换到Treeview视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insertbefore,如图:2.在弹出的对话框中选择“ImageCheck”,点击“OK”出现ImageCheckProperties对话框,在“ALTattr”中填入图片的替代显示文本“Companylogo”,在“SRCatt”中填入图片的路径“gui/themes/default/images/company_logo.png”点击“OK”完成添加图片检查点。3.切换到scriptview视图,可以看到插入image图片检查点函数web_image_check()函数,点击“回放”按钮进行搜索所要查询的图片,在replayLog日志中可以看到“web_image_check”succeded(1occurrence(s)found.Alt=“Companylogo”,src=\'#\'/themes/default/images/company_logo.png“)三、自动检查点有时侯我们需要确保每个请求中都包含一个检查信息,然而手动添加检查点函数非常麻烦,可以使用自动检查点规则,通过建立一个新的规则,可以在回放时对所有的返回内容进行检查工作。例如:查找登录testlink脚本每个页面是否包含images/company_logo.png这个图片。1.打开“Run-timesettings/ContentCheck,点击“NewApplication”按钮来添加一个应用,然后在这个应用下添加对应的规则,单击“Newrule”按钮。在Searchfortext中填写需要检查的内容“images/company_logo.png”,也可以在下面的searchbyprefixandsuffix中填写需要检查边界,大小写需要区分可以将Matchcase选中,设置Failif为NotFound,点击“OK”按钮。如图:运行脚本时,如果有页面返回的代码中没有包含images/company_logo.png时,就能看到以下错误:Action.c(10):Error-26370:ContentCheckRuleRule_1inApplicationdiscuztriggered.Textimages/company_logo.pngnotmatched[MsgId:MERR-26370]Action.c(10):web_submit_data(login.php_2)highestseveritylevelwasERROR,135bodybytes,377headerbytes[MsgId:MMSG-26388]如果返回的代码中包含mages/company_logo.png则不会有任何提示出现。通过自动化检查点,可以轻松地对页面中固定出现的内容进行校验工作。四、ReplayLog常见信息说明1.web_find()和web_image_check()函数的日志信息(这两个日志信息是上一样的,只是