• QTP自动化测试之VBScript基础(下)


    要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易学。

    7. 条件语句
    8. 循环语句
    9. 过程

    7. 条件语句

    VBScript中可以使用以下条件语句:

    • If…Then…Else语句
    • Select Case语句

    7.1. If…Then…Else语句

    If…Then…Else语句结构如下:

    If condition Then statements [Else elsestatements]

    或者使用块形式

    If condition Then
        [statements]
    [ElseIf condition-n Then
        [elseifstatements]] . . .
    [Else
        [elsestatements]]
    End If

    主要参数:

    • condition:为一个(多个)数值或字符串表达式,其运算结果为True或False,若condition为Null,则被视为False。
    • statements:为condition等于True时执行的一条或多条(以冒号分开)语句。

    对于短小简单的测试,可以使用单行形式(第一种语法),但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。

    '1. 条件为True时
    '单行形式
    Dim myDate
    myDate = #2011-9-8#   '日期时间字符串需用#括起来
    If myDate < Now Then myDate = Now
    '块形式
    If i = 100 Then
        c = True
        i = 0
    End If
    
    '2. 条件为True和False时
    If user.UserName = "admin" Then
        showAdminPage = True
    Else
        showAdminPage = False
    End If
    
    '3. 对多个条件判断
    If value = 0 Then
        MsgBox(0)
    ElseIf value = 1 Then
        MsgBox(9999)
    Else
        MsgBox("输入不合法!")
    End If

    7.2. Select Case语句

    语法结构如下:

    Select Case testexpression
        [Case expressionlist-n
            [statements-n]] . . .
        [Case Else expressionlist-n
            [elsestatements-n]]
    End Select
    

    主要参数:

    • testexpression:任意数值或字符串表达式。
    • statements:当testexpression与expressionlist-n中的任意部分匹配时,执行的一条或多条语句。

    Select Case结构提供了If...Then...ElseIf结构的另一个变通形式,功能与If...Then...ElseIf类似,但可以使代码更加简练易读,它与Case语句关联使用。

    Dim value : value = 5   '多条语句在一行,需用冒号分开
    Select Case value
        Case 0:
            MsgBox(0)
        Case 1:
            MsgBox(9999)
        Case Else
            MsgBox("输入不合法!")
    End Select

    8. 循环语句

    VBScript中可以使用以下循环语句:

    • Do...Loop语句
    • While...Wend语句
    • For...Next语句
    • For Each...Next语句

    8.1. Do…Loop语句

    当(或直到)条件为True时循环,语法结构如下:

    当条件为True时重复执行某语句块。

    Do [{While | Until} condition]
        [statements]
        [Exit Do]
        [statements]
    Loop

    当条件变为True之前重复执行某语句块。

    Do
        [statements]
        [Exit Do]
        [statements]
    Loop [{While | Until} condition]

    主要参数:

    • condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False。
    • statements:当condition为True时被重复执行的一条或多条命令。

    Exit Do可以退出循环体,循环可以嵌套使用。

    Do Until response = vbNo
        myNum = Int(6 * Rnd + 1)   '产生1到6之间的随机数
        response = MsgBox(myNum & "想要另一个数吗?", vbYesNo)
    Loop
    
    Dim check, counter
    check = True : counter = 0
    Do
        Do While count < 20
            counter = counter + 1  '增加计数器
            If counter = 10 Then
                check = false
                Exit Do   '终止内循环
            End If
        Loop
    Loop Until Not check

    8.2. While…Wend语句

    当条件为True时循环,语法结构如下:

    While condition
        [statements]
    Wend

    主要参数:

    • condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False。
    • statements:当condition为True时被重复执行的一条或多条命令。

    While…Wend没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句。

    8.3. For…Next语句

    指定循环次数,使用计数器重复运行语句,语法结构如下:

    For counter = start To end [Step step]
        [statements]
        [Exit For]
        [statements]
    Next

    主要参数:

    • counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
    • start:counter的初值。
    • end:counter的终值。
    • step:counter的步长。如果没有指定,则step的默认值为1。

    8.4. For Each…Next语句

    对于集合中的每项或数组中的每个元素,重复执行一组语句,语法结构如下:

    For Each element In group
        [statements]
        [Exit For]
        [statements]
    Next [element]

    主要参数:

    • element:用来枚举集合或数组中所有元素的变量。对于集合,element可能是Variant变量、通用Object变量或任意指定的Automation对象变量。对于数组,element只能是Variant变量。
    • group:对象集合或数组的名称。

    9. 过程

    在VBScript中,过程被分为两类:Sub过程和Function过程。

    9.1 Sub过程

    语法结构如下:

    [Public [Default] | Private] Sub name [(arglist)] 
        [statements]
        [Exit Sub]
        [statements]
    End Sub

    主要参数:

    • Public:表示Sub过程可被所有脚本中的所有其他过程访问。
    • Default:只与Class块中的Public关键字连用,用来表示Sub过程是类的默认方法。如果在类中指定了不止一个Default过程,就会出错。
    • Private:表示Sub过程只可被声明该过程的脚本中的其他过程访问。
    • name:Sub的名称,遵循标准变量命名规则。
    • arglist:代表在调用时要传递给Sub过程的参数的变量列表。用逗号隔开多个变量。其语法为:[ByVal | ByRef] varname[()],ByVal表示该参数是按值传递的,ByRef表示该参数按引用传递,varname代表参数的变量名称。

    如没有显式地指定使用Public或Private,则Sub过程默认为Public。调用Sub过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用Call语句,但如果使用了此语句,则必须将所有参数包含在括号之中。调用Sub过程的两种方式。一种使用Call语句;另一种则不使用。两种方式效果相同,如:Call MySub(a, b)或MySub a, b。

    9.2 Function过程

    语法结构如下:

    [Public [Default]| Private] Function name [(arglist)]
        [statements]
        [name = expression]
        [Exit Function] 
        [statements]
        [name = expression]
    End Function

    主要参数:

    • Public:表示Function过程可被所有脚本中的所有其他过程访问。
    • Default:只与Class块中的Public关键字连用,用来表示Function过程是类的默认方法。如果在类中指定了不止一个Default过程,就会出错。
    • Private:表示Function过程只可被声明该过程的脚本中的其他过程访问。
    • name:Function的名称,遵循标准变量命名规则。
    • arglist:代表在调用时要传递给Function过程的参数的变量列表。用逗号隔开多个变量。其语法为:[ByVal | ByRef] varname[()],ByVal表示该参数是按值传递的,ByRef表示该参数按引用传递,varname代表参数的变量名称。

    如没有显式地指定使用Public或Private,则Function过程默认为Public。调用Function过程时,函数名必须用在变量赋值语句的右端或表达式中,如:b = MyFunction(a)。要从函数返回一个值,只需将值赋给函数名。在过程的任意位置都可以出现任意个这样的赋值。

    9.3 Sub与Function的区别

    • Sub没有返回值,而Function有返回值。
    • Sub不能放在表达式中,而Function可以。
  • 相关阅读:
    创建XNA Shooter游戏——概述
    Android 界面切换与恢复原生界面
    输入和用户界面——SpaceCamera类
    ASP.NET下FCKedit配置及使用参考
    1282. Game Tree 夜
    1122. Game 夜
    1136. Parliament 夜
    hdu 3905 Sleeping 夜
    1195. Ouths and Crosses 夜
    1210. Kind Spirits 夜
  • 原文地址:https://www.cnblogs.com/known/p/2172647.html
Copyright © 2020-2023  润新知