一、设置集合点
集合点可以控制各个Vuser以便在同一时刻执行任务,借助集合点,可以在loadrunner中实现真正意义上的完合一样的并发。
当使用集合点时,可以在系统上模拟较重的用户负载。当某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。当满足集合条件时,Controller释放Vuser,这样可以产生非常密集的同一类用户操作或请求。Vuser从集合释放后,将执行脚本中的下一个任务。集合点一般会创建在用户事务的开始标志彰。只能在脚本的Action部分(而不是init或end部分)添加集合点。
Lr_rendezvous(“集合点名”)
如何设置集合点-录制登录testlink脚本为例:
1.从菜单中选择运行Virtual User Generator,在New Virtual User窗口选择Web(HTTP/HTML)协议,点击“Create”按钮。
2.在弹出的窗口中输入要录制的url地址http://192.168.1.251/testlink/login.php?note=expired,并选择"Record into Action"为vuser_init,点击OK正式开始录制,这时会自动打开登录主页面。
3.点击工具条“暂停”按钮暂停录制,并选择“Record into Action”为Action,在登录主页面输入用户名XXX,密码XXX,点击“login”按钮进行登录,登录成功后点击工具条“停止”按钮结束录制,登录脚本录制成功。
4.在脚本Action部分右键选择“Insert→Start Transaction”弹出一个对话框,输入一个事务名字login,点击OK,“Start Transaction”插入完成后,还需要插入一个“End Transaction”,用以标识事务结束。
5.在开始事务前插入集合点,右键选择“Insert”→“rendezvous”弹出一个对话框,输入集合点名字为login,点击OK集合点设置完毕。
沐川网站建设公司成都创新互联,沐川网站设计制作,有大型网站制作公司丰富经验。已为沐川上1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的沐川做网站的公司定做!
二、手动设置检查点
为了检查web
服务器返回的网页结果是否正确,VuGen支持在脚本中插入Test/Imag检查点。检查点有两种图片和文字。可以用三个函数实现:
web_find()
web_reg_find()
web_p_w_picpath_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-Tme Settings中勾选Enable Image and text check,系统默认是不勾选该选项的。
2.函数只能在基于HTML模式录制的脚本中进行查找。
查找用户是否登录testlink成功信息-Testlink 1.8.5 [test desingner]
1.切换到Tree view视图,选择action中树形菜单需要插入检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert after,如图:
2.在弹出的对话框中选择“Test Check”,点击“OK”出现Text Check Properties对话框,在“search for ”中填入需要查找信息“TestLink 1.8.5 : XXX [test designer]”, 点击“确定”完成添加text检查点。
3.切换到script view视图,可以看到插入test文本检查点函数web_find(),点击“回放”按钮进行搜索所要查询的文本,在replay Log日志中可以看到Action.c(38): "web_find" successful. 1 occurrence(s) of "TestLink 1.8.5 : XXX [test designer]" found (RightOf="", LeftOf="") [MsgId: MMSG-27196]
Action.c(38): web_find was successful [MsgId: MMSG-26392]
2、web_reg_find()函数
函数作用:在缓存中查找相应的内容
参数举例:web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);
参数解释:
1.Search 用来定义查找范围,默认All,也可选择 “headers”或body”部分
2.SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到
3.Text用来定义查找内容
4.Fail if指定在任何情况下报错,有“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成功信息-Testlink 1.8.5 [test desingner]
1.切换到Tree view视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert before,如图:
2.在弹出的对话框中选择“web_reg_find”,点击“OK”出现Find Text 对话框,在“search for specific text”中填入查找信息“TestLink 1.8.5 : XXX [test designer]”, 在“search in”设置查询范围默认“All”,定义Savecount计数变量为 “regcheck”,Fail if选择“NotFound”点击“OK”完成添加test检查点。
3.切换到script view视图,可以看到插入test文本检查点函数web_reg_find(),点击“回放”按钮进行搜索所要查询的文本,在replay Log日志中可以看到Action.c(29): Registered web_reg_find successful for "Text=TestLink 1.8.5 : XXX [test designer]" (count=1) [MsgId: MMSG-26364]
检查点-打印验证web_reg_find()函数:
lr_start_transaction("login");
web_submit_data("login.php_2",
"Action=http://192.168.1.251/testlink/login.php",
…
LAST);
web_reg_find("Fail=NotFound", "Search=All", "SaveCount=regcheck", "Text=TestLink 1.8.5 : XXX [test designer]", 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_p_w_picpath_check()函数
函数作用:在页面中查找一个具体的图片。
参数说明:web_p_w_picpath_check("web_p_w_picpath_check","Alt=","Src=",LAST);;
参数解释:“Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值。
src表示该图片文件的路径,alt表示图片的替代显示文本(在需要检查的页面上右键查看源文件,找到该图片的src和alt值)
函数用法:该函数是在缓存中查找相应的内容,所以要放在查找内容之前。
注意事项:使用该函数时,要在Vuser->Run-Tme Settings中勾选Enable Image and text check,具体操作请看web_find()中的注意事项
例如:查找用户使用testlink图标-company_logo.png
1.切换到Tree view视图,选择action中树形菜单需要插入文本检查点的一项,然后点击鼠标右键,选择插入到该操作执行前Insert before,如图:
2.在弹出的对话框中选择“Image Check”,点击“OK”出现Image Check Properties对话框,在“ALT attr”中填入图片的替代显示文本“Company logo”, 在“SRC att”中填入图片的路径“gui/themes/default/p_w_picpaths/company_logo.png”点击“OK”完成添加图片检查点。
3.切换到script view视图,可以看到插入p_w_picpath图片检查点函数web_p_w_picpath_check()函数,点击“回放”按钮进行搜索所要查询的图片,在replay Log日志中可以看到“web_p_w_picpath_check” succeded(1 occurrence(s) found. Alt=“Company logo”,src="gui/themes/default/p_w_picpaths/company_logo.png“)
三、自动检查点
有时侯我们需要确保每个请求中都包含一个检查信息,然而手动添加检查点函数非常麻烦,可以使用自动检查点规则,通过建立一个新的规则,可以在回放时对所有的返回内容进行检查工作。
例如:查找登录testlink脚本每个页面是否包含p_w_picpaths/company_logo.png这个图片。
1.打开“Run-time settings/ContentCheck,点击“New Application”按钮来添加一个应用,然后在这个应用下添加对应的规则,单击“New rule”按钮。在Search for text中填写需要检查的内容“p_w_picpaths/company_logo.png”,也可以在下面的search by prefix and suffix中填写需要检查 边界,大小写需要区分可以将Match case选中,设置Fail if 为Not Found,点击“OK”按钮。如图:
运行脚本时,如果有页面返回的代码中没有包含p_w_picpaths/company_logo.png时,就能看到以下错误:Action.c(10): Error -26370: ContentCheck Rule "Rule_1" in Application "discuz" triggered. Text "p_w_picpaths/company_logo.png" not matched [MsgId: MERR-26370]
Action.c(10): web_submit_data("login.php_2") highest severity level was "ERROR", 135 body bytes, 377 header bytes [MsgId: MMSG-26388]
如果返回的代码中包含mages/company_logo.png则不会有任何提示出现。通过自动化检查点,可以轻松地对页面中固定出现的内容进行校验工作。
四、Replay Log常见信息说明
1. web_find()和web_p_w_picpath_check()函数的日志信息
(这两个日志信息是上一样的,只是输出的函数名和参数不同)
1)信息1
Warning -27077: The “vuser_init” section contains web function(s) when the “Simulate a new user on each iteration” Run-Time Setting is ON. This may produce unpredictable results with multiple iterations [MsgId: MWAR-27077]
出现该信息:说明不能勾选simulate a new user on each iteration
Action.c(5): Verification checks not enabled. web_find is skipped. See the 'Run-time settings/Preferences/Checks' [MsgId: MMSG-27197]
出现该信息:说明没有勾选Enable Image and text check
2) 信息2
Action.c(5): Error -27195: "web_find" failed. 0 occurrence(s) of "Test Project" found (RightOf="a", LeftOf="b") [MsgId: MERR-27195]
Action.c(5): web_find highest severity level was "ERROR" [MsgId: MMSG-26391]
Replay Log常见信息说明:
Action.c(6): Error -27191: "web_p_w_picpath_check" failed (0 occurrence(s) found. Alt="123", Src="123") [MsgId: MERR-27191]
Action.c(6): web_p_w_picpath_check highest severity level was "ERROR" [MsgId: MMSG-26391]
出现该信息,说明要查找的内容没有找到。这时依次尝试以下操作:
1)检查参数的信息是否写错;
2)如果是web_find(),检查函数的位置是否在要查找内容的后面;
3)如果是web_p_w_picpath_check(),查看该图片的源代码,看其是否是这个页面上的图片,很可能是图片选择错误,即所选图片不属于该页面。
3)信息3
Action.c(6): "web_p_w_picpath_check" succeeded (1 occurrence(s) found. Alt="Company logo", Src="company_logo.png") [MsgId: MMSG-27192]
Action.c(6): web_p_w_picpath_check was successful [MsgId: MMSG-26392]
Action.c(38): "web_find" successful. 1 occurrence(s) of "TestLink 1.8.5 : XXX [test designer]" found (RightOf="", LeftOf="") [MsgId: MMSG-27196]
Action.c(38): web_find was successful [MsgId: MMSG-26392]
出现该信息,说明内容、图片已经查找到
2. web_reg_find()函数的日志信息
1)信息1
Action.c(29): Registered web_reg_find successful for "Text=TestLink 1.8.5 : XXX [test designer]" (count=1) [MsgId: MMSG-26364]
出现该信息,说明内容已查找到
2)信息2
Action.c(11): Error -26366: "Text=ABC" not found for web_reg_find [MsgId: MERR-26366]
Action.c(11): web_submit_data("login.php_2") highest severity level was "ERROR", 135 body bytes, 377 header bytes [MsgId: MMSG-26388]
该信息在replay log页面是红色显示的,说明没有找到内容,出现此情况尝试以下两个操作:
1)参数的信息是否正确;
2)查看该函数是否在查找内容的前面。
名称栏目:LoadRunner11-设置集合点及检查点
文章位置:
http://cdxtjz.cn/article/pddesc.html