QTP的基本功能介绍(6)

发表于:2015-03-24来源:uml.org.cn作者:erix1991点击数: 标签:qtp
Run one iterator only是指仅运行一次,也就是说,即使Data Table中有多条数据,也仅运行一次;Run on all rows则是Data Table中所有数据都运行一次;选择Run from rowtoro

  “Run one iterator only”是指仅运行一次,也就是说,即使Data Table中有多条数据,也仅运行一次;“Run on all rows”则是Data Table中所有数据都运行一次;选择“Run from row…to…row…”则可进一步设置测试数据运行的范围。

  选择“Run on all row”,运行后得到如图所示测试结果

  (2).使用随机数进行参数化

  对于选择航班这个测试步骤的参数化有所不同,因为航班数据表会跟随所选的起点和终点发生变化,因此要通过随机数来做特殊处理,如下代码所示。

  先通过访问GetItemsCount属性,获取航班列表的行数,然后使用RandomNumber 随机取其中一项,最后通过Select方法选择航班

  (3).使用环境变量的参数化

  下面以“Flight”的登录界面的“Agent Name”和“Password”为例介绍用环境变量参数化。

  首先,选择菜单“File|Settings”,出现如图界面。在这个界面中,切换到“Environment”页,在“Variable type”中选择“User-Defined”,然后单击旁边的“+”按钮,在下图定义环境变量的名和输入的值。

  重复上面步骤,定义“Password”环境变量,得到如下图结果。

  定义好环境变量并设置好其值之后,就可以在测试步骤中使用该环境变量。

  在关键字视图中,定位到“AgentName”测试步骤的“Value”列,如下图,

  单击旁边的“<#>”,出现下图所示界面。在界面中,选择”Parameter”,并在下拉框中选择“Environment”,在“Name”中选择“AgentName”。重复这个步骤,设置“输入登录密码”。

  设置完后,结果如图,QTP在运行测试脚本时,就会读取测试步骤绑定的环境变量值,来执行相应的数据输入动作。

  QTP描述性编程

  测试过程中,有些界面元素是动态出现或动态变化的,在录制时,并没有被加到测试库中,如何让这些在测试中动态出现的界面元素得到控制呢?QTP提供了描述性编程的方式来解决这些问题。

  用描述性编程编写的脚本在运行时,QTP会使用测试脚本中给出的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行时QTP为其创建的临时测试对象版本进行匹配。

  在QTP中,有两种描述性编程的开发方式:一种是“直接描述”的方式,另一种是使用“Description对象”的方式。下面我们就以NCP servers登录后的时间显示表为例来说明,如图。

  1.直接描述方式

  对于前面的NCP servers时间显示表,测试用例是要测试它的时间是否正确,它是随时间不断变化的,可以通过描述性编程来解决,例如下面的脚本:

Browser("深圳市元征软件有限责任公司").Page("深圳市元征软件有限责任公司").WebEdit("userName").Set "xiaoyu"
Browser("深圳市元征软件有限责任公司").Page("深圳市元征软件有限责任公司").
WebEdit("password").SetSecure "4bda8fb406a2bf5fa628b028325fcebe031d"
wait 8
Browser("深圳市元征软件有限责任公司").Page("深圳市元征软件有限责任公司").Image("dl").Click
'通过正则表达式匹配web表
text1 = "服务器时间.*"
str = Browser("深圳市元征软件有限责任公司").Page("用户管理 | 诊断服务增值业务服务管理后台").
WebTable("name:=WebTable","Text:=" & text1).GetCellData (1,2)
Msgbox str

原文转自:http://www.uml.org.cn/Test/201312031.asp