在开发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定位路径

代码如下:

     web_url("forum.php_2",
"URL=http://192.168.157.128/Discuz/upload/forum.php",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
EXTRARES,
"URL=static/image/common/user_online.gif", ENDITEM,
"URL=static/image/feed/favorite_b.png", ENDITEM,
"URL=static/image/feed/magic_b.png", ENDITEM,
"URL=static/image/feed/medal_b.png", ENDITEM,
"URL=static/image/feed/task_b.png", ENDITEM,
"URL=static/image/feed/wall_b.png", ENDITEM,
"URL=static/image/common/style_switch.png", ENDITEM,
"URL=static/image/feed/friend_b.png", ENDITEM,
"URL=static/image/feed/thread_b.png", ENDITEM,
LAST); web_image_check("web_image_check",
"Src=/upload/uc_server/avatar.php?uid=2&size=small",
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也不一样,代码如下:

     web_reg_save_param("uidParam",
"LB=<img src=\"http://127.0.0.1/Discuz/upload/uc_server /avatar.php?uid=",
"RB=&size=small\" />",
"Search=Body",
LAST); web_image_check("web_image_check",
"Src=/upload/uc_server/avatar.php?uid={uidParam}&size=small",
LAST);

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

LR实战之Discuz开源论坛——登录脚本检查点的更多相关文章

  1. LR实战之Discuz开源论坛——登录脚本

    脚本业务流:访问Discuz论坛首页——登录论坛——退出论坛.本次使用LoadRunner11版本. 一.录制脚本注意 1.确保Discuz论坛能在服务器运行正常. 2.录制前先试访问Discuz论坛 ...

  2. LR实战之Discuz开源论坛——网页细分图结果分析(Web Page Diagnostics)

    续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场景(Controller),现在,终于到了LoadRunner性能测试结果分析(An ...

  3. LR实战之Discuz开源论坛——安装及简介

    想了很久,也许是因为这段时间特别闲,从毕业到现在,我的测试职业生涯也近两年了,发现自己越来越喜欢测试领域,也越来越偏向测试开发了,作为一名专业的测试人员,不得不要学习性能测试,而使用LoadRunne ...

  4. LR实战之Discuz开源论坛——登录场景设计

    以下是根据个人项目经验,对登录场景的设计,如下步骤: 一.打开Controller,添加登录脚本,选择“手动场景”,一般我们项目中经常使用的是“手动场景”类型设计,如图 二.在“设计”部分,设置场景的 ...

  5. Discuz开源论坛

      Discuz开源论坛本地部署自动生成数据库   这个版本可能比较有点老,但是万变不离其宗,再新的版本都是在已有的基础上更新的,所以掌握方法是最重要的! 先上几张安装成功后的图 (安装成功的论坛首页 ...

  6. Discuz开源论坛本地部署自动生成数据库

    这个版本可能比较有点老,但是万变不离其宗,再新的版本都是在已有的基础上更新的,所以掌握方法是最重要的! 先上几张安装成功后的图 (安装成功的论坛首页) (后台管理登录页) 下面说一下安装步骤 第一步: ...

  7. 安装Discuz开源论坛

    11.添加mysql普通用户 接着上篇的lamp这篇安装Discuz 配置虚拟主机 1.打开虚拟主机配置 [root@NFS-31 ~]# vim /usr/local/apache2/conf/ht ...

  8. .Net开源项目之开源论坛

    .Net开源项目非常多,但是开源并且直接就能用的BBS项目就很少了,至少最近我在这上面没有找到一个合适的开源论坛.可能是因为我要求比较特殊,不但要开箱即用,还要用MVC+MySql开发. Discuz ...

  9. 想要搭建个论坛?Guide哥调研了100来个 Java 开源论坛系统,发现这 5 个最好用!

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 最近有点小忙.但是,由于前几天答应了一位读者自己会推荐一些开源的论坛系统,所以,昨晚就简单地熬了个夜,对比了很多 ...

随机推荐

  1. PHP连接sql server 2005环境配置

    一.Windows下PHP连接SQLServer 2005 设定:安装的Windows操作系统(Win7 或XP均可.其它系统暂未測试),在C盘下:PHP的相关文件位于c:/PHP以下,其配置文件ph ...

  2. cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

    安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人的系统是Win7 ...

  3. Android系统默认Home应用程序(Launcher)的启动过程源代码分析

    在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个 Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home ...

  4. java编程排错技巧

    一.Eclipse提示错误The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from re ...

  5. xtrabackup备份恢复测试

    http://blog.chinaunix.net/uid-20682026-id-3319204.html

  6. jsp文件上传

    整理了一下jsp的上传下载,由客户端到服务端,包括一些常规的业务 一客户端 先看最基本的情况 1 在表单设置multipart/form-data,通过提交键把数据和附件一次性提交的.服务器更多的是对 ...

  7. UITextView(文本视图) 学习之初体验

    UITextView文本视图相比与UITextField直观的区别就是UITextView可以输入多行文字并且可以滚动显示浏览全文.常见UITextView使用在APP的软件简介.内容详情显示.小说阅 ...

  8. 求a,b在区间上的公倍数个数

    给你两个数 a,b.问你区间 [1,N]中都是有多少个数是a,b的公倍数.当数据很大的时候,遍历肯定会超时.其实,我们可以首先求出 lcm(a,b).因为我们知道(a,b)公倍数都是它最小公倍数的倍数 ...

  9. shell中的退出状态码

    shell中的退出状态码最大只有255,如果超过这个值,就会进行取余运算,即如果执行如下命令: exit exitCode 如果exitCode大于255,那么实际的状态码为exitCode % 25 ...

  10. hdu1466 计算直线的交点数

    题意: 平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数. 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行). 分析: DP 设状态:f[i][j]表示i条直线能否产生j个 ...