首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室软件测试频道
Google
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试工具 >> Robot >> 正文

用Rational Robot测试有数据关联的Web应用

  如果选择了“All”或者“Specific”选项,那么生成的VU脚本中会包含若干对库函数“http_find_values”的调用。该库函数会找出由服务器返回并且最终用户不作修改的参数,然后抽取出它们的值并保存在一系列以“SgenRes_nnn”形式命名的变量中。举例来讲,列表2中包含了一个隐藏的FORM参数“mode”。Robot会确定该参数需要进行关联并生成相应的脚本代码(见列表3)来动态抽取它的值。

列表 2. 一个FORM样例

列表 3. Robot生成的VU脚本片断样例
…
{
string SgenRes_001[];
SgenRes_001 = http_find_values("mode", HTTP_FORM_DATA, 1);
CHECK_FIND_RESULT(SgenRes_001,"mode","simpe")
}
…

  库函数http_find_values会在当前HTTP连接的响应中搜索所需的参数值。它的语法如下:

string[] http_find_values(name, type, tag[, name, type, tag ... ]),

  其中name指定参数的名称,type指定参数所在的数据形式,tag指定使用符合条件的第几个参数值。type的值应为以下值之一:HTTP_FORM_DATA、HTTP_HREF_DATA或HTTP_COOKIE_DATA,分别代表FORM数据、URL数据或Cookie数据。每一个name、type和tag的组合都唯一地确定了一个单一的值,调用http_find_values时最多可以指定21个这样的组合。宏CHECK_FIND_RESULT验证它返回的值不为空,若为空则提供一个缺省值,该缺省值是在脚本录制时记录的值。

可以发现,虽然使用了动态数据关联技术,Robot还是只能从FORM数据、URL数据或者Cookie数据中抽取参数值。如果动态数据的值被包含在其他地方,例如FORM中的“action”属性中,Robot就无能为力了。

参数值的定制抽取

  当URL的location部分是由服务器动态生成或者部分参数不在Robot能自动关联的范围之内时,就需要通过编程来定制参数值的抽取,简单地讲就是进行字符串匹配。VU语言的库提供了几个用于此目的的函数。除了前面已经介绍过的库函数http_find_values,库函数http_header_info可被用来从最近的HTTP响应头中抽取一个头参数。此外还有很多基本的字符串处理函数,可在它们的基础上编写更复杂的自定义函数。下面介绍几个作者编写的可用于一般目的抽取函数。

  列表4中定义的“getURLByText”函数可以通过指定一个字符串获得围绕该字符串的HTML Anchor标签的HREF属性。例如,getURLByText(“

  Hello world!

  ”, “a surprise”)将返回“hello2.jsp”。如果第二个参数变为“surprise”,则返回“hello1.jsp”,因为该函数总是返回第一个被匹配到的结果。如果没有找到任何匹配,getURLByText返回一个空字符串。

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

【责编:michael】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·建立可全面监控Squid代理服务器
 ·华为认证题库、模拟器下载专题
 ·嵌入式操作系统Linux资料下载(A)
 ·JAVA的应用编程接口——JAVA API详解…
 ·Linux Shell学习技术专题[上]…
 ·windows Server 2008专区…
 ·WEB开发ASP.NET和PHP、JSP究竟学哪个
 ·五步带你入门XML
 ·零距离接触OCP_Oracle认证体系全攻略
 ·揭秘:网络工程师职业发展路线图
 最近更新
 博客论点
 频道精选
 软件测试频道导航