VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的是HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的。而大多数系统出错时是不会返回错误页面的,而是返回一个消息提示框,来提升用户体验感。

检查点函数,能够对服务器返回的内容进行检查,比如验证网页上是否存在指定的Text或者Imag

l、文本检查点

函数一:web_reg_find()

web_reg_find()文本检查点函数提供了一种对服务器返回内容进行查询的功能,和关联的不同之处在于检查点函数只能返回检索到内容的次数

注意:

1.该检查点函数为注册型函数,注册型函数一定要写在请求前

2.函数在缓存中查找相应的内容,即无须等待html页面内容显示出来就可查找

Insert->new step>web_reg_find(),打开图示窗口

说明:

Search for specific Text

需要查询的标准文本,该功能和word中的查找功能十分相似。在服务器返回的内容中查找特定的字符串,内容支持参数化,并且支持和关联相同的通配符和识别方式。输入需要查找的字符串即可,检查点函数将会在服务器返回中对该字符串进行查找

Search for Text by start and end of string

提供根据左右边界进行查找的功能

Search in

设置在服务器返回的哪部分数据中进行查询,这里提供了All,Headers,Body三个选项,和关联选项相同。

Save count

文本检查点特别之处,记录查找内容的出现次数并且存放到一个参数中,可以填写一个参数名称来存放计数结果。

Fail if

设置在什么情况下文本检查点函数错误。如果选择Found,表示如果在服务器返回中存在需要检查的对象,那么文本检查点函数出错;选择NotFound则相反,如果没找到对应的内容,那么文本检查点函数出错。

检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误。

示例:通过文本检测,判断登录是否成功

测试脚本

Action2()

{

//打开登录页面

web_url("WebTours",

"URL=http://172.25.75.2:1080/WebTours/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_think_time(2);

//插入检查点函数

web_reg_find("Fail=NotFound",

"Search=All",

"SaveCount=login_times",

"Text=reservation pages",

LAST);

//提交登录

web_submit_form("login.pl",

"Snapshot=t2.inf",

ITEMDATA,

"Name=username", "Value=jojo", ENDITEM,

"Name=password", "Value=bean", ENDITEM,

"Name=login.x", "Value=49", ENDITEM,

"Name=login.y", "Value=6", ENDITEM,

LAST);

return 0;

}

运行结果:

有时候,确保每个请求中都包含一个检查信息,而手动添加很麻烦,这个时候可以使用自动检查点规则,通过建立一个新的规则,可以在回放时对所有的内容进行检查工作。

打开 Run-time Settings/ContentCheck

单击New Appication按钮来添加一个应用,然后在这个应用下添加对应的规则,单击New Rule按钮,这里可以在这里添加一个检查规则。在Search for Text中填写test,设置Fail if为Not Found,如果运行脚本时,返回页面的代码中没有包含test时,就可看到错误,否则无提示,自动通过检查点。

详情参见:运行脚本-Run-time Settings-ContentCheck简单设置

 

函数二:web_find()

和web_reg_find功能类似,主页区别在于:该函数“从HTML页面中查找指定的文本字符串”,

注意:

1.该函数在请求的页面内容完全显示出来以后,在页面中进行查找,所以只能写在打开页面的动作之后,执行效率较低

2. 需要打开内容检查选项 打VuGen组件,选择Vuser->runtime setting->Preferences,勾选Enable image and text check,否则将不执行该查找函数;

3.在VB和JAVA语法中不支持该函数

4.无返回结果,不利于后续处理

示例:

Insert->New Step,弹出窗中选择Text Check,点击OK

注意:这里要搜索的字符串可以使用正则表达式。

说明:

Search for:要查找的内容

Right of:要查找内容的右边界

Left of:要查找内容的左边界

Setp Name:该次操作的名称,最好能见名知意

Action2()

{

//打开登录页面

web_url("WebTours",

"URL=http://172.25.75.2:1080/WebTours/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_think_time(2);

//提交登录

web_submit_form("login.pl",

"Snapshot=t2.inf",

ITEMDATA,

"Name=username", "Value=jojo", ENDITEM,

"Name=password", "Value=bean", ENDITEM,

"Name=login.x", "Value=49", ENDITEM,

"Name=login.y", "Value=6", ENDITEM,

LAST);

//插入检查点函数

web_find("find_reservation_after_login",

"RightOf=Tours",

"LeftOf=pages",

"What=reservation",

LAST);

return 0;

}

运行结果:

2、图片检查点

通过web_image_check()函数可以检查页面上的图片。

web_image_check(“函数标题”,”ALT=图片说明”,LAST);

注意:图片检查点函数必须在Run-time Settings中打开Preferences下的Enable Image and text check才有效果。

示例:Insert->New Step,打开对话框中选择Image Check,点击Ok,如下

Action2()

{

//打开登录页面

web_url("WebTours",

"URL=http://172.25.75.2:1080/WebTours/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

lr_think_time(2);

//提交登录

web_submit_form("login.pl",

"Snapshot=t2.inf",

ITEMDATA,

"Name=username", "Value=jojo", ENDITEM,

"Name=password", "Value=bean", ENDITEM,

"Name=login.x", "Value=49", ENDITEM,

"Name=login.y", "Value=6", ENDITEM,

LAST);

//插入检查点函数

web_image_check("find_image_flights",

"Src=/WebTours/images/flights.gif",

LAST);

return 0;

}

运行结果:

Loadrunder之脚本篇——检查点的更多相关文章

  1. loadrunder之脚本篇——接口传参为本地文件

    导言 前几天需要对公司一个专门很重要的接口进行压测,这个还不是重点,重点是传参为本地的图片!刚刚开始通过web_custom_request()函数来解决,可是脚本并不能通过!后面又百度不到答案,通过 ...

  2. Loadrunder之脚本篇——事务时间简介

    事务概念 事务是指用户在客户端做一种或多种业务所需要的操作集(actions),通过事务开始和结束函数可以标记完成该业务所需要的操作内容(脚本section).定义事务来衡量服务器的性能,例如,你可以 ...

  3. loadrunder之脚本篇——脚本基础知识和常用操作

    1)编码工具设置 自动补全输入Tools->General Options->Environment->Auto complete word 显示功能语法Tools->Genr ...

  4. loadrunder之脚本篇——定义全局变量

    如果参数是全局的,在脚本中的任何一个Action中都可以使用,变量一般是局部的,如果跨Action调用会出现未声明的错误. 打开Script视图中左侧Action列表中的globals.h文件,可定义 ...

  5. loadrunder之脚本篇——int类型和字符串的相互转换

    字符串转化为int型变量 Action2() { int j = 0; j = atoi("12345");  //将字符串变为整形 lr_output_message(" ...

  6. loadrunder之脚本篇——Run-time Settings之Pacing

      As soon as the previous iteration ends 前一个迭代一结束就尽可能快的开始新一轮的迭代   After the previous iteration ends ...

  7. loadrunder之脚本篇——加密解密

    密码加密 可以给密码加密,意在把结果字符串作为脚本的参数或者参数值.例如,完整可能有一个用户密码填写的表单,你想测试网站针对不同密码的反应,但是你又想保护密码的安全.Password Encoder允 ...

  8. Loadrunder之脚本篇——关联函数对话框详解

    Insert->New Step,打开Add Step对话框 选择函数web_reg_save_param,点击OK,打开关联函数设置窗口 说明: Parameter Name 此处设置存放参数 ...

  9. Loadrunder之脚本篇——关联

    关联的原理 关联也属于一钟特殊的参数化.一般参数化的参数来源于一个文件.一个定义的table.通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的.动态的值. 例子:常 ...

随机推荐

  1. redis 底层数据结构 压缩列表 ziplist

    压缩列表是列表键和哈希键的底层实现之一.当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当一个哈希键只包含少量键 ...

  2. Consul实现原理系列文章1: 用Raft来实现分布式一致性

    工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前一篇文章中,我介绍了Raft算法.这篇文章会讲讲Consul是如何使用Raft算法来实现分布式一 ...

  3. c++标准库之容器

    C++最原始的容器之一是数组.数组的特点有: 1.大小固定 2.单独存在的数组建立在栈上,作为对象成员存在的数组建立在堆上还是栈上则要看作为宿主对象是被建立在堆上还是栈上.栈空间是有限的,所以如果数组 ...

  4. python3----strip lstrip rstrip

    Python中的strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符,rstrip用于去除右边的字符.这三个函数都可传入一个参数,指定要去除的首尾字符.注意的是,传入的是一个字符数 ...

  5. iOS 阿里百川SDK集成注意点

    百川SDK是阿里系OneSDK的终极版本,里面包含了所有的阿里系的基本所有的SDK,集成的时候你只需要勾选对应的你需要的模块,然后生成对应的SDK即可,百川主要是针对帮助APP开发者在各种场景下快速. ...

  6. linux命令小结

    查看IP  ip a 测试ip   ping 10.0.0.128 测试端口   telnet 10.0.0.128  22  # telnet + ip + 端口 Linux - CentOS 7. ...

  7. 有关于iOS字体的设置

    1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的resouce中 3.在程序viewdidload中加载一下一段代码 NSArray *familyNames = [UI ...

  8. Android无线测试之—UiAutomator UiObject API介绍二

    点击与长按 一.组件区域位置关系 Rect 对象代表一个矩形区域 [Left,Top] [Right,Bottom] 二.点击与长按API 返回值 API 描述 boolean click() 点击对 ...

  9. jQuery倒计时实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么?

    web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么? 这是我在网上找的一些资料:1. Web浏览器除了可以在本地硬盘上打开网页文档外,还可以使用http网络协议从网络上的We ...