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:检查通过的条件,默认为Found
Matchcase:是否区分大小写,默认为no
Repeat:找到第一个符合条件字符串后,是否还继续搜索,默认为yes
Report:什么情况下(success、failure、always)显示检查结果,默认always
Onfailure:失败(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=/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. Alt="", Src="/upload/uc_server/avatar.php?uid=2&size=small")      [MsgId: MERR-27191]

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

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

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

 扩展知识:

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

刚好,我这里的头像,检查图片时就必须做管理,因为每个用户的头像图片是不一样的,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=/upload/uc_server/avatar.php?uid={uidParam}&size=small",
10         LAST);

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

原文地址:https://www.cnblogs.com/luihengk/p/3954494.html