首页 > 代码库 > LR实战之Discuz开源论坛——登录脚本检查点

LR实战之Discuz开源论坛——登录脚本检查点

在开发Discuz登录脚本时,遇到的一个问题是怎么去验证虚拟用户真正的登录成功,当然,熟悉LoadRunner工具的人就会知道,在脚本中使用检查点,对,没错!

我们知道,LR检查点功能有两种:文本检查点web_find()、web_reg_find() 和 图像检查点web_image_check()

这里只讲,如何使用图像检查点web_image_check()。

先了解一下这个函数的使用:web_image_check()语法:int web_image_check(const char *CheckName, <List of Attributes>, <"Alt=alt"|| "Src=src">, LAST );参数:1、CheckName:Check名称。2、List of Attributes:支持的属性有:Frame(在多Frame的情况下,定义要查找Frame的范围)。支持的选项有:Expect:检查通过的条件,默认为FoundMatchcase:是否区分大小写,默认为noRepeat:找到第一个符合条件字符串后,是否还继续搜索,默认为yesReport:什么情况下(success、failure、always)显示检查结果,默认alwaysOnfailure:失败(expect的值决定)的情况下,是否继续,默认为Continue on Error。3、Alt:图片的ALT标记。4、Src:图片的SRC标记。

使用LR工具中,插入函数web_image_check()时,有两种检查方式,一是使用图片的ALT标记;二是使用图片的SRC标记。如图

                                                                                          

在登录成功的页面,右键查看源代码,找到刚才需要检查的<img>图片,这里我用的是Src定位路径

代码如下:

 

 1     web_url("forum.php_2", 2         "URL=http://192.168.157.128/Discuz/upload/forum.php", 3         "Resource=0", 4         "RecContentType=text/html", 5         "Referer=", 6         "Snapshot=t3.inf", 7         "Mode=HTML", 8         EXTRARES, 9         "URL=static/image/common/user_online.gif", ENDITEM,10         "URL=static/image/feed/favorite_b.png", ENDITEM,11         "URL=static/image/feed/magic_b.png", ENDITEM,12         "URL=static/image/feed/medal_b.png", ENDITEM,13         "URL=static/image/feed/task_b.png", ENDITEM,14         "URL=static/image/feed/wall_b.png", ENDITEM,15         "URL=static/image/common/style_switch.png", ENDITEM,16         "URL=static/image/feed/friend_b.png", ENDITEM,17         "URL=static/image/feed/thread_b.png", ENDITEM,18         LAST);19 20         web_image_check("web_image_check",21         "Src=http://www.mamicode.com/upload/uc_server/avatar.php?uid=2&size=small",22         LAST);

 

这里,需要注意,使用图像检查点时,代码位置,必须将该函数放到提交访问的URL后面,若放在前面,则会报错,如下报错信息

Action_login.c(33): Continuing after Error -27191: "web_image_check" failed (0 occurrence(s) found. , Src="http://www.mamicode.com/upload/uc_server/avatar.php?uid=2&size=small")      [MsgId: MERR-27191]

看到上面的报错信息,就是说明找不到检查点,总结了下有三种可能:

1、检查参数的信息是否写错;

2、web_image_check(),查看该图片的源代码,看其是否是这个页面上的图片,很可能是图片选择错误,即所选图片不属于该页面;

 扩展知识:

图像检查点函数web_image_check(),是支持嵌入关联变量的,意思是在Alt=“”或者Src=http://www.mamicode.com/“”内容中,若脚本中涉及到关联是可以嵌入的

刚好,我这里的头像,检查图片时就必须做管理,因为每个用户的头像图片是不一样的,userId也不一样,代码如下:

 1     web_reg_save_param("uidParam", 2         "LB=<img src=\"http://127.0.0.1/Discuz/upload/uc_server  /avatar.php?uid=", 3         "RB=&size=small\" />", 4         "Search=Body", 5         LAST); 6  7  8         web_image_check("web_image_check", 9         "Src=http://www.mamicode.com/upload/uc_server/avatar.php?uid={uidParam}&size=small",10         LAST);

LR回放之后,可以看到关联成功,如图

 

LR实战之Discuz开源论坛——登录脚本检查点