基本的 VBScript 语法

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

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

此部分介绍一些基本 VBScript 功能。有关在 Python 中编写的语法和准则,请参阅 Python 官方文档。

概述

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 错误消息,它可能指示需要在步骤方法的参数两边添加圆括号。

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

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

  • 方法返回变量的值:

    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)

另请参见: