基本的 VBScript 语法

相关项: GUI 操作、脚本化 GUI 组件和函数库

用于开发操作、脚本组件或函数库的编辑器为 VBScript 编辑器。因此,除了输入测试对象语句和其他用于测试的函数,您还可以手动输入任何有效的 Microsoft VBScript 语句。

概述

VBScript 是易学但功能强大的脚本编制语言。即使以前没有编程经验,也可以使用 VBScript 开发脚本来执行简单和复杂的基于对象的任务。

您可以在编辑器中手动插入 VBScript 语句。您还可以使用编辑器或关键字视图的步骤生成器插入多个 VBScript 语句。

本主题提供了一些基本的准则,以帮助您使用 VBScript 语句增强操作、脚本化组件或函数库。

每个 VBScript 语句都有其自己的特定语法规则。如果不遵循这些规则,则运行有问题的步骤时,将生成错误。有关详细信息,请参阅常规语法规则和准则格式化文本

另外,如果尝试从编辑器转到“关键字视图”,OpenText Functional Testing 将在“错误”窗格中列出在文档中找到的所有语法错误。如果不修正或消除语法错误,就无法切换到“关键字视图”。

返回页首

VBScript 参考

在 Microsoft VBScript 参考中了解有关 VBScript 语句的详细信息:

  • VBScript 用户指南和语言参考
  • Windows 脚本

备注: 您查阅的语言参考可能包含 VBScript 和 JScript 信息或示例,OpenText Functional Testing 仅支持 VBScript。请勿尝试在测试中使用 VBScript 参考中的 JScript 示例。

返回页首

注释

相关项: GUI 操作、脚本化 GUI 组件和函数库

注释是脚本中以撇号 (') 开头的行或行的一部分。在测试运行期间,OpenText Functional Testing 不会处理注释。可以使用注释对操作、脚本化组件或函数库的各部分进行说明以提高可读性,并使脚本更易于维护和更新。

以下示例显示了注释如何描述它下面的语句的用途:

'Sets the word "myname" into the "username" edit box.
Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("username").Set "myname"

默认情况下,注释在 VBScript 代码内显示为绿色。可在“选项”对话框文本编辑器选项卡的字体和颜色窗格(工具 > 选项 > 文本编辑器选项卡 > 常规节点)中自定义注释的外观。有关详细信息,请参阅字体和颜色窗格

提示:  

  • 通过选择“编辑”>“格式” >“注释/取消注释”,可以对文本块进行注释或取消注释。

  • 还可以使用 VBScript Rem 语句添加注释行。有关更多详细信息,请参阅 Microsoft VBScript 参考。

返回页首

参数指示

相关项: GUI 操作和脚本化 GUI 组件

可以使用 OpenText Functional Testing 通过参数化值增强测试。参数是从外部数据源或生成器赋值的变量。

在“关键字视图”中创建参数时,OpenText Functional Testing 在编辑器中用 VBScript 创建对应的行。

例如,如果将方法参数值定义为“数据”窗格参数,则 OpenText Functional Testing 使用以下语法从“数据”窗格中检索值:

对象层次结构.方法 数据表 (参数 ID, 工作表 ID)

描述

对象层次结构

测试对象的分层定义,由点分隔的一个或多个对象组成。

方法

OpenText Functional Testing 在参数化对象上执行的方法的名称。

数据表

表示数据表的保留对象。

参数 ID

数据表中值的来源列的名称。

工作表 ID

值存储到的工作表的名称。如果参数是全局参数,则 dtGlobalSheet 是工作表 ID。

示例: 假设您正在为 Advantage Online Shopping 站点创建测试,并选择 Italy 作为送货地址。以下语句会插入到编辑器中的测试操作:

Browser("Advantage Shopping").Page("Advantage Shopping").WebList("countryListbox").Select "Italy"

现在假设您已参数化地址值,并在“数据”窗格中创建 Address 列。先前的语句将修改为以下内容:

Browser("Advantage Shopping").Page("Advantage Shopping").WebList("countryListbox").Select DataTable("Address", dtGlobalSheet) 

在此示例中,Select 是方法名称,DataTable 是表示数据表的对象,Address 是“数据”窗格参数 (列名称),dtGlobalSheet 指示“数据”窗格中的全局表。

有关使用和定义参数值的更多详细信息,请参见参数化对象值

返回页首

圆括号

相关项: GUI 操作、脚本化 GUI 组件和函数库

使用 VBScript 编程时,遵循在语句中使用或不使用圆括号 () 的规则很重要。如果要调用返回值的方法,并且要使用返回值,则必须在方法参数两边使用圆括号。

例如,如果要将值返回给变量,如果要在 If 语句中使用该方法,或如果要使用 Call 关键字调用操作或函数,请在方法参数两边使用圆括号。使用操作时,如果要检索检查点的返回值,那么也需要在检查点的名称两边添加圆括号。

提示: 运行某个步骤时,如果接收到 Expected end of statement 错误消息,它可能指示需要在步骤方法的参数两边添加圆括号。

Example: 下面是几个示例,用于显示何时在方法参数两边使用圆括号,何时不使用圆括号。

在以下情况下需要使用圆括号:

  • 方法返回变量的值:

    Set webelementobj = Browser("Advantage Shopping").Page("Advantage Shopping").WebTable("PRODUCT NAME").ChildItem(2, 2, "WebElement", 0)
    webelementobj.Click
  • 正在使用 Call:

    Call RunAction("BookFlight", oneIteration)

    或者

    Call MyFunction("Hello World")
    ...
    ...
  • If 语句中使用方法:

    If Browser("index").Page("index").Link("All kinds of").WaitProperty("attribute/readyState", "complete", 4)
    Then
        Browser("index").Page("index").Link("All kinds of").Click
    End If 
  • 方法返回检查点的值:

    a = Browser("MyBrowser").Page("MyPage").Check(CheckPoint("MyProperty"))

在以下情况下不需要使用圆括号:

方法不返回值:

Browser("Advantage Shopping").Page("Advantage Shopping").WebTable("PRODUCT NAME").Click 2,2

返回页首

计算

相关项: GUI 操作、脚本化 GUI 组件和函数库

可以使用数学运算符编写执行简单计算的语句。例如,可以使用乘运算符将网站上两个文本框中显示的值相乘。VBScript 支持以下数学运算符:

运算符

描述

+

求反 (负数)

*

/

^

指数

在以下示例中,乘法运算符用于计算三个扬声器的总价格:

'Retrieves the price of a speaker using the GetROProperty method
Price = Browser("Advantage Shopping").Page("Advantage Shopping").WebElement("$44.99").GetROProperty("innertext")
'Multiplies the price by 3
Total price = Price * 3
'Inserts the total price into a message box
msgbox("The total price is "& total price.")

返回页首

变量

相关项: GUI 操作、脚本化 GUI 组件和函数库

可以指定变量以存储操作、脚本化组件或函数库中的测试对象或简单值。将变量用于测试对象时,可以在其他语句中使用该变量而无需使用整个对象层次结构。以此方式使用变量可使语句更易于阅读和维护。

要指定变量来存储对象,请按照以下语法使用 Set 语句:

Set 对象变量 = 对象层次结构

在下面的示例中,Set 语句指定变量 UserEditBox 来存储 username 编辑框的完整 Browser.Page.WebEdit 对象层次结构。然后,Set 方法会使用 UserEditBox 变量将值 tutorial 输入到 username 编辑框中:

Set UserEditBox = Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("username")
UserEditBox.Set "tutorial"

备注: 不要使用 Set 语句指定包含简单值(比如字符串或数字)的变量。下面的示例显示了如何定义简单值的变量:

MyVar = Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("username").GetTOProperty("type")

还可以使用 Dim 语句声明其他类型的变量,包括字符串、整数和数组。此语句不是必需语句,但可以用它改进操作、脚本化组件或函数库的结构。

示例: 下面的示例演示使用 Dim 语句声明变量:

在操作或脚本化组件中 (使用 TrackingNumber 变量):

Dim TrackingNumber
TrackingNumber = Browser("Advantage Shopping").Page("Advantage Shopping").WebElement("trackingNumberLabel").GetTOProperty("innertext")

在函数库中(使用 actual_value 变量):

Dim actual_value
	' Get the actual property value
	actual_value = obj.GetROProperty(PropertyName)

返回页首

另请参见: