VBScript Tutorial for Beginners, VBScript Environment, VBScript Language fundamentals, VBScript control flow, and VBScript object models.
Introduction:
• Visual Basic Scripting Edition is a lightweight language from Microsoft.
• VBScript derived from VB Programming language.
• VBScript is not a case-sensitive language.
• VBScript is a lightweight language and it has fewer formalities for writing Programs.
• VBScript is a platform-dependent language.
Usage of VBScript:
1. Client-side scripting in the Web (HTML) (Browser-IE)
2. Server-side scripting in the web (ASP) (Web Server -IIS)
3. Network Administration on Server OS (WSH)
4. System Administration on Client OS or Server OS (WSH)
5. Automated Testing (UFT/QTP)
VBScript Syllabus
1. VBScript Environment
2. Data Types and Variables
3. VBScript Constants
4. VBScript Operators
Arithmetic operators, Relational or Comparison operators, and Logical operators.
Note: Concatenation operators are Part of Arithmetic operators.
5. VBScript Conditional Statements
6. VBScript Loop Statements
7. VBScript Built-in Functions
8. VBScript User-defined Functions
9. VBScript Coding conventions
10. VBScript File System Operations
11. VBScript Excel Application Operations
12. VBScript Word Application operations
13. VBScript Database Objects
14. VBScript Dictionary Object
15. Regular Expressions
16. Error Handling in VBScript
Etc,
Data Types and Variables
Data Types:
VBScript doesn’t support Explicit declaration of Data Types.
In VBScript only the Data type is Variant, It can hold any type of data, based on usage of data VBScript internally considers Data subtypes.
Example:
Dim city
city = “Hyderabad” ‘String
——–
——–
——–
city = 100 ‘Integer
——–
——–
——–
city = 1.24 ‘Double
——–
——–
——–
city = #10/10/2015# ‘Date
We can check Data Sub types using VarType Function
Check Data Sub types:
Dim a
Msgbox VarType(a) ‘0 for Empty / Uninitialized
a = 100
Msgbox VarType(a) ‘2 for Integer
Msgbox VarType(100) ‘2 for Integer
Msgbox VarType(“abcd”) ‘8 for String
Msgbox VarType(“100”) ‘ 8 for String
Msgbox VarType(1.24) ‘ 5 for Double
Msgbox VarType(#10/10/2010#) ‘7 for Date
Set a = CreateObject(“Scripting.FileSystemObject”)
Msgbox VarType(a) ‘9 for Automation Object
Convert the Data from one sub type to another.
Why we need to convert the Data?
In Computer Programming value Assignment 2 types:
i. Initialization
Ex:
a = 100
ii. Reading
Read data using Input devices
Read data from a file
Read data from a database
Read data from Application objects
Ex:
‘Before Conversion
Dim a, b
a = InputBox(“Enter A Value”)
b = InputBox(“Enter B Value”)
Msgbox a + b
Note: If we read data then VBScript considers the data as String type data. In order to perform math-metical calculations, we need to convert the data.
> Using conversion Functions we can convert the data.
‘After Conversion
Dim a, b
a = InputBox(“Enter A Value”)
b = InputBox(“Enter B Value”)
Msgbox Cint (a) + Cint (b)
We can’t convert Alfa bytes into Integer or double type.
Ex:
Dim val, Tickets
val = InputBox(“Enter a value”)
Msgbox VarType(val) ‘8 for String
val = Cint(val)
Msgbox VarType(val)
Tickets = Window(“Flight Reservation”).WinEdit(“Tickets:”).GetROProperty(“text”)
Msgbox VarType(Tickets) ‘8 for String
Msgbox VarType(Cint(Tickets)) ‘ 2 for Integer
Variables:
1. What is a Variable?
A named memory location to store the data.
In a computer environment, there are two types of memory
i. Primary memory: RAM
ii. Secondary memory: HDD, CD-ROM, DVD, USB Drive, etc…
Variables store in Primary Memory (RAM).
2. Declaration of variables
> using either Public or Private or Dim statements, we can declare Variables.
Ex:
Dim a
Dim x, y, z
Or
Dim x
Dim y
Dim z
3. Implicit and Explicit variables.
Ex:
Dim a
a = 100 ‘Explicit
b = 200 ‘Implicit
Msgbox a + b
———————
Dim Tickets, Price, Total
Tickets = 7
Price = 100
Total = Tickets * Priee
Msgbox Total ‘0 (Incorrect output)
———–
Option Explicit
Dim Tickets, Price, Total
Tickets = 7
Price = 100
Total = Tickets * Priee
Msgbox Total ‘Error
—————————
Option Explicit, it forces declaration of all variables in a Script
4. Assigning Values to Variables
Assigning Values to Variables is two types
i. Initialization
ii. Reading
Example:
Dim num1, num2
num1 = 100 ‘Initialization
num2 = InputBox (“Enter Num2 value”) ‘ Reading
Msgbox num1 + num2
5. Purpose of Variables
Dim a, ord
‘Holding the data
a = 100
Msgbox a
‘Storing the data that returned by a Function
a = Now
Msgbox a
‘Storing the data that returned by a program
a = (10 ^ 3)*2
Msgbox a
‘storing object Reference
Set a = CreateObject(“Scripting.FileSystemObject”)
‘As parameter
For ord = 1 To 5 Step 1
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set ord
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
Next
6. Naming Restrictions
i. Variable names should start with Alfa bytes
Ex:
Dim abc ‘Correct
Dim a12 ‘Correct
Dim 1ab ‘Incorrect
ii. Should not contain embedded periods
Ex:
Dim abc ‘Correct
Dim ab c ‘Incorrect
Dim ab.c ‘Incorrect
Dim ab*c ‘Incorrect
Dim ab_c ‘Correct
iii. Must not exceed 255 characters
1 to 255
iv) Must be unique in the scope of declaration.
Dim a, b, c ‘Correct
Dim d, e ‘Correct
Dim f, g, A ‘Incorrect
7. Scope of Variables
i. Script Level Variables
They can be used for entire script.
ii. Function Level Variables
They can be used within the Functions only
Example:
Dim a, b, c ‘Script level variables
a = 10
b = 20
c = a + b
Msgbox c ’30
Function xyz()
Dim d, e ‘Function level variables
d = 40
e = a + d
Msgbox e ’50
End Function
Call xyz()
Dim f, g ‘Script level variables
f = 70
g = b + d + f
Msgbox g ’90
—————————-
Option Explicit
Dim a, b, c ‘Script level variables
a = 10
b = 20
c = a + b
Msgbox c ’30
Function xyz()
Dim d, e ‘Function level variables
d = 40
e = a + d
Msgbox e ’50
End Function
Call xyz()
Dim f, g ‘Script level variables
f = 70
g = b + d + f
Msgbox g ‘Error
8. Types of Variables
i. Scalar Variable
To store one value at a time, Value may vary throughout the Execution.
ii. Array Variable
To store series of values at a time based on size of the Array.
Declare Array variable:
Dim a, b(3)
b(0) = 10
b(1) = “abcd”
b(2) = 1.34
b(3) = 40
a = b(0) + b(3)
Msgbox a ’50
———————-
Dim a, b(3)
b(0) = 10
b(1) = “abcd”
b(2) = 1.34
b(3) = 40
b(4) = 50 ‘Error
a = b(0) + b(3)
Msgbox a ’50
———————-
Dynamic Array
Dim a, b(3), c()
ReDim c(3)
c(0) = 10
c(1) = 20
c(2) = 30
c(3) = 40
a = c(1) + c(2)
Msgbox a ’50
ReDim c(5)
c(4) = 50
c(5) = 60
a = c(3) + c(5)
Msgbox a ’60
———————-
Use Preserve keyword
Dim a, b(3), c()
ReDim c(3)
c(0) = 10
c(1) = 20
c(2) = 30
c(3) = 40
a = c(1) + c(2)
Msgbox a ’50
ReDim Preserve c(5)
c(4) = 50
c(5) = 60
a = c(3) + c(5)
Msgbox a ‘100
———————-
Dimensional Arrays
Dim a, b(3), c(), d(4, 5)
d(0, 0) = 10
Assigning series of Values at a time to Array variables
a. Using Array Function
Dim a
Msgbox IsArray(a) ‘False
a = Array(100, “VBScript”, 20, 30, 40, #10/10/2010#)
Msgbox IsArray(a) ‘True
Msgbox a(1) ‘VBScript
Msgbox UBound(a) ‘5
b. Using Split Function
Dim a, b
a = “VB Script Language”
msgbox isArray(b) ‘False
b = Split(a)
Msgbox IsArray(b) ‘True
Msgbox b(1) ‘Script
Msgbox UBound (b) ‘2
———————-
Dim a, b
a = “VB,Script,Language”
msgbox isArray(b) ‘False
b = Split(a, “,”)
Msgbox IsArray(b) ‘True
Msgbox b(1) ‘Script
Msgbox UBound (b) ‘2
———————-
Dim a, b
a = “VB@Script@Language”
msgbox isArray(b) ‘False
b = Split(a, “@”)
Msgbox IsArray(b) ‘True
Msgbox b(1) ‘Script
Msgbox UBound (b) ‘2
———————-
Dim a, b
a = “VB@%$Script@%$Language”
msgbox isArray(b) ‘False
b = Split(a, “@%$”)
Msgbox IsArray(b) ‘True
Msgbox b(1) ‘Script
Msgbox UBound (b) ‘2
———————-
Note: In Split Function default delimiter is space, we can use any value as a delimiter, but we need to specify the delimiter.
VBScript Operators
Operators are used to performing the mathematical, comparison, and logical operations.
Categories of operators:
1. Arithmetic Operators
2. Comparison Operators
3. Logical Operators
Note: Concatenation operators (Part of Arithmetic Operators)
Operator precedence:
Operator precedence is VBScript operator priority process, generally, VBScript evaluate operators from left to right, but if any high priority operator is there in right side then first VBScript evaluate high priority operator then general rule.
Note: In order to override operator precedence, use () symbol
Example:
Msgbox 2 + 2 * 4 ^ 2 ’34
Msgbox (2 + 2) * 4 ^ 2 ’64
——————
Msgbox 2 + 2 * 4 ’10
Msgbox (2 + 2) * 4 ’16
1. Arithmetic Operators
i. Exponentiation ^
ii. Multiplication *
iii. Division /
iv. Integer Division \
v. Mod Operator
vi. Addition +
vii. Subtraction –
viii. Concatenation &
Example:
Dim a, b, c
a = 10
b = 3
c = a ^ b
Msgbox c ‘1000
c = a * b
Msgbox c ’30
c = a / b
Msgbox c ‘3.33333333333
c = a \ b
Msgbox c ‘3
c = a Mod b
Msgbox c ‘1
c = a + b
Msgbox c ’13
c = a – b
Msgbox c ‘7
c = a & b
Msgbox c ‘103
———————–
+ Operator
Dim a, b, c
a = 10
b = 3
c = a + b
Msgbox c ’13
a = 10
b = “3”
c = a + b
Msgbox c ’13
a = “10”
b = “3”
c = a + b
Msgbox c ‘103
a = “Hydera”
b = “bad”
c = a + b
Msgbox c ‘Hyderabad
a = “Hyderabad”
b = “123”
c = a + b
Msgbox c ‘Hyderabad123
a = “Hyderabad”
b = 123
c = a + b
Msgbox c ‘Error
———————–
& Operator
Dim a, b, c
a = 10
b = 3
c = a & b
Msgbox c ‘103
a = 10
b = “3”
c = a & b
Msgbox c ‘103
a = “10”
b = “3”
c = a & b
Msgbox c ‘103
a = “Hydera”
b = “bad”
c = a & b
Msgbox c ‘Hyderabad
a = “Hyderabad”
b = “123”
c = a & b
Msgbox c ‘Hyderabad123
a = “Hyderabad”
b = 123
c = a & b
Msgbox c ‘Hyderabad123
2. Comparison Operators (All are Equal)
i. >
ii. >=
iii. <
iv. <=
v. =
vi. <>
Note: Comparison operators return Boolean (logical) result.
Ex: True / False
————————-
Example:
Dim a, b, c
a = 10
b = 3
c = a > b
Msgbox c ‘True
c = a >= b
Msgbox c ‘True
c = a <> b
Msgbox c ‘True
c = a < b
Msgbox c ‘False
c = a <= b
Msgbox c ‘False
c = a = b
Msgbox c ‘False
3. Logical Operators
i. Not (Logical Negation)
If Not Dialog(“Login”).Exist(3) Then
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”,””,”C:\Program Files\HP\Unified Functional Testing\samples\flight\app\”,””
End If
Dialog(“Login”).Activate @@ hightlight id_;_525276_;_script infofile_;_ZIP::ssf1.xml_;_
Dialog(“Login”).WinEdit(“Agent Name:”).Set “asdf” @@ hightlight id_;_66772_;_script infofile_;_ZIP::ssf2.xml_;_
Dialog(“Login”).WinEdit(“Password:”).SetSecure “555fe8c872cfa7718d3ea9b61ac921c85ea7371b” @@ hightlight id_;_66774_;_script infofile_;_ZIP::ssf3.xml_;_
Dialog(“Login”).WinButton(“OK”).Click @@ hightlight id_;_66776_;_script infofile_;_ZIP::ssf4.xml_;_
ii. And (Logical Conjunction)
Dim a, b, c
a = 100
b = 90
c = 80
If a > b And a > c Then
Msgbox “A is a Big Number”
Else
Msgbox “A is Not a Big Number”
End If
————————
Result Criteria:
Exp1 Exp2 Result
————————
True True True
True False False
False True False
False False False
3. Or (Logical Disjunction)
Result Criteria:
Exp1 Exp2 Result
————————
True True True
True False True
False True True
False False False
4) XOr (Logical exclusion)
Result Criteria:
Exp1 Exp2 Result
————————
True True False
True False True
False True True
False False False
VBScript Conditional Statements
a. Types of Conditional statements
i. If Statement
ii. Select Case Statement
b. Types of Conditions
i. Single Condition
ii. Compound Condition
iii. Nested Condition
c. Purpose of conditional statements in UFT:
i. To insert verification points
ii. For Error handling
d. Usage of Conditional Statements
i. Execute a statement when the condition is True/ Simple If
ii. Execute a block of statements when a condition is True.
iii. Execute a block of statements when a condition is True, otherwise execute another block of statements.
iv. Decide among several alternates (ElseIf)
v. Execute a block of statements when more than one condition is true. (Nested If)
vi. Decide among several alternates (using select Case)
Examples:
i. Execute a statement when a condition is True/ Simple If
Syntax:
If Condition Then Statement
Example:
Dim myDate
myDate = #10/10/2010#
If myDate < Date Then myDate = Date
Msgbox myDate
myDate = #10/10/2017#
If myDate < Date Then myDate = Date
Msgbox myDate
ii. Execute a block of statements when condition is True.
Syntax:
If Condition Then
Statements
———–
———-
———-
End If
Example:
Dim a, b
a = 100
b = 500
If a > b Then
Msgbox “A is a Big Number”
End If
iii. Execute a Block of statements when condition is True, otherwise execute another block of statements.
Syntax:
If Condition Then
Statements
———–
———–
———–
Else
Statements
———–
———–
———–
End If
Examples:
———–
Dim a, b
a = 100
b = 900
If a > b Then
Msgbox “A is a Big Number”
Else
Msgbox “B is a Big Number”
End If
——————
Dim a, b
a = InputBox(“Enter A Value”)
b = InputBox(“Enter B Value”)
If Cint (a) > Cint (b) Then
Msgbox “A is a Big Number”
Else
Msgbox “B is a Big Number”
End If
——————————-
Dim a, b
a = InputBox(“Enter A Value”)
b = InputBox(“Enter B Value”)
If ISNumeric(a) = True And IsNumeric(b) = True Then
If Cint (a) > Cint (b) Then
Msgbox “A is a Big Number”
Else
Msgbox “B is a Big Number”
End If
Else
Msgbox “Invalid Input”
End If
iv. Decide among several alternates (Else If)
Syntax:
If Condition then
Statements
————-
————
———-
ElseIf Condition Then
Statements
————-
————
———-
ElseIf Condition Then
Statements
————-
————
———-
ElseIf Condition Then
Statements
————-
————
———-
Else
Statements
————-
————
———-
End If
Example:
‘Read a Value and Verify the Range
‘If the value is in between 1 and 100 then display “Value is a Small Number”
‘If the value is in between 101 and 1000 then display “Value is a Medium Number”
‘If the value is in between 1001 and 10000 then display “Value is a Big Number”
‘If the value is more than 10000 then display “Value is High Number”
‘Otherwise display “value is either Zero or Negative value.
VBScript Program:
Dim val
val = InputBox(“Enter a Value”)
If IsNumeric(val) Then
If val >= 1 And val <=100 Then
Msgbox “Value is Small Number”
ElseIf val > 100 And val <= 1000 Then
Msgbox “Value is a Medium Number”
ElseIf val > 1000 And val <= 10000 Then
Msgbox “Value is a Big Number”
ElseIf val > 10000 Then
Msgbox “Value is High Number”
Else
Msgbox “value is either Zero or Negative Value”
End If
Else
msgbox “Invalid Input”
End If
v. Execute a block of statements when more than one condition is True
Syntax:
If Condition Then
If Condition Then
If Condition Then
Statements
———
———–
Else
———-
———
End If
End If
End If
Example:
‘Read a Value and verify whether the Value is Valid Mobile Number or not?
‘Value should be Numeric
‘Value must contain 10 digits
‘First letter should be either 9 or 8
VBScript Program:
Dim val
val = InputBox (“Enter a Value”)
If IsNumeric(val) = True Then
If Len(val) = 10 Then
If Left(val, 1) = 9 Or Left(val, 1) = 8 Then
Msgbox “val is a Valid Mobile Number”
Else
Msgbox “Val is Invalid Mobile Number”
End If
Else
Msgbox “It is not a 10 digit value”
End If
Else
Msgbox “It is not a Numeric Value”
End If
‘Handle . Symbol
vi. Decide among several alternates (using Select Case)
Syntax:
Select Case TestExpression
Case “Case1Name”
Statements
———-
———-
Case “Case2Name”
Statements
———-
———-
Case “Case3Name”
Statements
———-
———-
Case Else
Statements
———-
——–
———-
End select
Example:
Dim a, b, operation
a = 10
b = 20
operation = LCase (InputBox(“Enter a value”))
Select Case operation
Case “add”
Msgbox “Addition of a, b is: “& a+b
Case “sub”
Msgbox “Subtraction of a, b is: “& a-b
Case “mul”
Msgbox “Multiplication of a, b is: “& a*b
Case “div”
Msgbox “Division of a, b is: “& a/b
Case Else
msgbox “Invalid Operation”
End Select
VBScript Loop Statements
1. For…Next
2. While…Wend
3. Do While / Until…Loop
4. For Each…Next
1. For…Next
Description:
It repeats a block of statements for a specified number of times.
Syntax:
For Counter (Variable) = Start to End Step Incr/Decr
Statements
———
———-
———–
Next
Example:
For i = 1 To 5 Step 1
Msgbox i & ” Hello UFT”
Next
———————————————-
For OrderNumber = 1 To 10 Step 1
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNumber
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
Next
——————————-
‘ Terminating For loop
For OrderNumber = 20 To 25 Step 1
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNumber
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
If Window(“Flight Reservation”).Dialog(“Open Order”).Dialog(“Flight Reservations”).Exist(3) Then
Window(“Flight Reservation”).Dialog(“Open Order”).Dialog(“Flight Reservations”).WinButton(“OK”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“Cancel”).Click
Window(“Flight Reservation”).WinButton(“Button_2”).Click
Reporter.ReportEvent 3, “Res”, “Up to “& OrderNumber -1 & ” Orders only Exist”
Exit For
End If
Next
2. While…Wend
It repeats a block of statements while a condition is True
Syntax:
While Condition
Statements
———-
———-
———
Incr/Decr
Wend
Example:
OrderNo = 1
While OrderNo <= 5
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
OrderNo = OrderNo + 1
Wend
3. Do While / Until…Loop
Using While Keyword
It repeats a block of statements while a condition is True
Using Until Keyword
It repeats a block of statements Until the condition is True
i.
Do While Condition
Statements
———-
———-
Incr/Decr
Loop
ii.
Do
Statements
———-
———-
Incr/Decr
Loop While Condition
———————————
iii.
Do Until Condition
Statements
———–
————
———-
Incr/Decr
Loop
iv.
Do
Statements
———–
————
———-
Incr/Decr
Loop Until Condition
Examples:
OrderNo = 1
Do While OrderNo <= 5
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
OrderNo = OrderNo + 1
Loop
——————————–
OrderNo = 10
Do
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
OrderNo = OrderNo + 1
Loop While OrderNo <= 5
——————————–
OrderNo = 1
Do Until OrderNo > 5
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
OrderNo = OrderNo + 1
Loop
——————————–
OrderNo = 1
Do
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
OrderNo = OrderNo + 1
Loop Until OrderNo > 5
——————————–
‘Terminating Do loop
OrderNo = 20
Do Until OrderNo > 30
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Wait 2
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
If Window(“Flight Reservation”).Dialog(“Open Order”).Dialog(“Flight Reservations”).Exist(3) Then
Window(“Flight Reservation”).Dialog(“Open Order”).Dialog(“Flight Reservations”).WinButton(“OK”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“Cancel”).Click
Window(“Flight Reservation”).WinButton(“Button_2”).Click
Reporter.ReportEvent micWarning, “Res”, “Up to “& OrderNo-1 & ” Orders only exist”
Exit Do
End If
OrderNo = OrderNo + 1
Loop
iv. For Each…Next
It executes all elements in an Array.
Syntax:
For Each Element in Array
Statements
———-
———-
Next
Example:
Dim a, b, res(3)
a = 10
b = 20
res(0) = “Addition of a, b is: “& a + b
res(1) = “Subtraction of a, b is: “& a – b
res(2) = “Multiplication of a, b is: “& a * b
res(3) = “Division of a, b is: “& a / b
For Each Element in res
Msgbox Element
Next
VBScript User defined Functions
A Function is a reusable code.
Whenever we want to perform the same operation multiple times then we choose Functions.
Two types of Functions in VBScript:
i. Built-in Functions
Array functions
String functions
I/O Functions
Date & Time Functions
Conversion functions etc….
ii. User-defined Functions
a. Sub Procedures
b. Function Procedures
User-defined Functions
a. Sub Procedures
Set of statements enclosed with Sub and End sub statements to perform an operation.
Sub Procedure takes Arguments, but Arguments are optional.
Sub Procedure won’t return any value.
Syntax:
Sub procedureName (Argumnets)
Statements
———–
———
———
End Sub
b. Function Procedures
Set of statements enclosed with Function and End Function statements to perform an Operation.
Function Procedure takes Arguments, but Arguments are optional
Function Procedure Can return a value.
Syntax:
Function procedureName (Arguments)
Statements
———–
————-
————
End Function
Note: Sub procedures are faster in Execution than Function Procedures.
————————————————————–
Access Modifiers
Public
Private
—————–
Usage of Functions
Internal – Defining and calling within the script
External – Calling from external library files.
———————————
i) Create a Sub Procedure with no Arguments
Sub Login ()
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set “asdf”
Dialog(“Login”).WinEdit(“Password:”).SetSecure “5566695dab8b9f47c06f8ba443bdba84f0d5274e”
Dialog(“Login”).WinButton(“OK”).Click
End Sub
Call Login()
—————————————————
ii) Create a Sub Procedure with Arguments
Sub Login (Agent, Password)
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
End Sub
Call Login(“abcd”, “mercury”)
—————————————————
iii) Sub Procedure with Arguments and Data Driven Testing
Sub Login (Agent, Password)
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
Window(“Flight Reservation”).Close
End Sub
Call Login(DataTable(1, 1), DataTable(2, 1))
———————————————————
iv) Sub Procedure with Arguments and load Shared object repository file from Function library.
Sub Login (Agent, Password)
RepositoriesCollection.Add “C:\Users\gcreddy\Desktop\login.tsr”
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
End Sub
——————————————————
v) Sub Procedure with Arguments and Verification Points
Sub Login(Agent, Password)
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
If Window(“Flight Reservation”).Exist(12) Then
Window(“Flight Reservation”).Close
Result = “Login Successful – Passed”
Else
SystemUtil.CloseDescendentProcesses
Result = “Login Unsuccessful – Failed”
End If
Msgbox Result
End Sub
Call Login(“abc”, “mercury”)
————————————-
Sub Login(Agent, Password)
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
If Window(“Flight Reservation”).Exist(12) Then
Window(“Flight Reservation”).Close
Result = “Login Successful – Passed”
Else
If Dialog(“Login”).Dialog(“Flight Reservations”).Exist(3) Then
Dialog(“Login”).Dialog(“Flight Reservations”).WinButton(“OK”).Click
Dialog(“Login”).WinButton(“Cancel”).Click
Result = “Login Unsuccessful – Failed”
End If
End If
Msgbox Result
End Sub
Call Login(“abc”, “mercury”)
‘Function Procedure with returning value
Function Login(Agent, Password)
SystemUtil.Run “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“Agent Name:”).Set Agent
Dialog(“Login”).WinEdit(“Password:”).Set Password
wait 2
Dialog(“Login”).WinButton(“OK”).Click
If Window(“Flight Reservation”).Exist(12) Then
Window(“Flight Reservation”).Close
Login = “Login Successful – Passed”
Else
If Dialog(“Login”).Dialog(“Flight Reservations”).Exist(3) Then
Dialog(“Login”).Dialog(“Flight Reservations”).WinButton(“OK”).Click
Dialog(“Login”).WinButton(“Cancel”).Click
Login = “Login Unsuccessful – Failed”
End If
End If
End Function
res = Login(“abcd”, “mercury”)
Msgbox res
————————————————–
Note:
If we use local (Function level) variable then we can use the value within the Function only.
If we return (Function Name) the value then we can use the value within the Function and
we can pass the value to external functions and export the value to external files.
————————————————————
‘Function Procedure with returning multiple values
Function Verify_UpdateButton()
Dim Before_Open, After_Open, Verify1, Verify2
Window(“Flight Reservation”).Activate
Before_Open = Window(“Flight Reservation”).WinButton(“Update Order”).GetROProperty(“enabled”)
If Before_Open = False Then
Verify1 = “Update Button Disabled -Passed”
Else
Verify1 = “Update Button Enabled -Failed”
End If
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set “1”
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
After_Open = Window(“Flight Reservation”).WinButton(“Update Order”).GetROProperty(“enabled”)
If After_Open = True Then
Verify2 = “Update Button Enabled – Passed”
Else
Verify2 = “Update Button Disabled – Failed”
End If
Verify_UpdateButton = Array(Verify1, verify2)
End Function
Result= Verify_UpdateButton()
Msgbox Result(0)
Msgbox Result(1)
‘Calling a Function within the Function
Function OpenOrder(OrderNo)
Call Login(“abcd”, “mercury”)
Window(“Flight Reservation”).Activate
Window(“Flight Reservation”).WinButton(“Button”).Click
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Order No.”).Set “ON”
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set OrderNo
Window(“Flight Reservation”).Dialog(“Open Order”).WinButton(“OK”).Click
End Function
Call OpenOrder(7)
VBScript Built-in Functions
1. Asc Function
Returns ANSI character code for first letter of a String or number.
‘A to Z (65 to 90)
‘a to z (97 to 122)
‘0 to 9 (48 to 57)
Ex:
Dim val
val = “ABCD”
Msgbox Asc(val) ’65
Msgbox Asc(“ABCD”) ’65
Msgbox Asc(“Z”) ’90
Msgbox Asc(“a”) ’97
Msgbox Asc(“z”) ‘122
Msgbox Asc(1) ’49
Msgbox Asc(“*”) ’42
2. Chr Function
Returns Character value for ANSI character code
Ex:
Msgbox Chr(65) ‘A
Msgbox Chr(90) ‘Z
Msgbox Chr(97) ‘a
Msgbox Chr(122) ‘z
Msgbox Chr(49) ‘1
Msgbox Chr(42) ‘*
3. Abs Function
Returns absolute value (Positive value).
Msgbox Abs (100.34) ‘100.34
Msgbox Abs (100.74) ‘100.74
Msgbox Abs (-100.34) ‘100.34
4. Round Function
Rounds the value to nearest integer.
Ex:
Msgbox Round(100.34) ‘100
Msgbox Round(100.74) ‘101
Msgbox Round(-100.34) ‘-100
5) Array Function
It assigns Series of values at a time to a variable
ex:
Dim a
Msgbox IsArray(a) ‘False
a = Array(1, 2, 3, “abcd”, 2.34)
Msgbox IsArray(a) ‘True
msgbox a(1) ‘2
Msgbox UBound (a) ‘4
6) IsArray Function
Checks weather the Variable is Array variable or not?
Return Boolean (Logical) Result.
Ex:
Dim a, b(3), c(), d(4, 5)
Msgbox IsArray(a) ‘False
Msgbox IsArray(b) ‘True
Msgbox IsArray(c) ‘True
Msgbox IsArray(d) ‘True
7) IsNumeric
Checks weather the value is Numeric value or not?
Msgbox isNumeric(100) ‘True
Msgbox isNumeric(“100”) ‘True
Msgbox isNumeric(“abcd”) ‘False
Msgbox isNumeric(1.345) ‘True
Msgbox isNumeric(#10/10/2010#) ‘false
8) IsDate
Checks weather the value is Data type data or not?
Ex:
Msgbox IsDate(100) ‘False
Msgbox IsDate(“abcd”) ‘False
Msgbox IsDate(1.345) ‘false
Msgbox IsDate(#10/10/2010#) ‘True
Msgbox IsDate(#10/10/10#) ‘True
Msgbox IsDate(#Sep/10/2010#) ‘True
Msgbox IsDate(#December/10/2010#) ‘True
9) IsEmpty
Checks weather the variable is empty variable or not?
Dim val
Msgbox IsEmpty(val) ‘True
val = 0
Msgbox IsEmpty(val) ‘False
val = Empty
Msgbox IsEmpty(val) ‘True
10) Date Function
Returns current System Date.
11) Time Function
Returns current System Time.
12) Now Function
Returns current System Date & Time.
Example:
Dim a
a = Date
Msgbox a
Msgbox Date
Msgbox Time
Msgbox Now
msgbox Date &” “& Time
Msgbox Time &” “& Date
13) Datediff Function
Returns Date difference between two dates based on interval.
It deducts first date from second date.
Ex:
Dim date1, date2
date1 = #10/10/2010#
date2 = #10/10/2012#
Msgbox Datediff(“yyyy”, date1, date2) & ” Years”
Msgbox Datediff(“q”, date1, date2) & ” Quarters”
Msgbox Datediff(“m”, date1, date2) & ” Months”
Msgbox Datediff(“w”, date1, date2) & ” Weeks”
Msgbox Datediff(“d”, date1, date2) & ” Days”
Msgbox Datediff(“h”, date1, date2) & ” Hours”
Msgbox Datediff(“n”, date1, date2) & ” Minutes”
Msgbox Datediff(“s”, date1, date2) & ” Seconds”
14) Left Function
Returns a specified number of charactors from left side of a string or number.
ex:
Dim val
val = 9249012345
msgbox Left(val, 5) ‘92490
Msgbox Left(“Hyderabad”, 3) ‘Hyd
Msgbox Left(123.456, 4) ‘123.
Msgbox Left(#10/10/2010#, 5) ’10/10
15) Right Function
Returns a specified number of characters from right side of a string or number.
Ex:
Dim val
val = 9249012345
msgbox Right(val, 5) ‘12345
Msgbox Right(“Hyderabad”, 3) ‘bad
Msgbox Right(123.456, 4) ‘.456
Msgbox Right(#10/10/2010#, 5) ‘/2010
16) Mid Function
Returns a specified number of characters from a string or number.
Ex:
Msgbox Left(“Hyderabad”, 3) ‘Hyd
Msgbox Mid(“Hyderabad”, 1, 3) ‘Hyd
Msgbox Right(“Hyderabad”, 3) ‘bad
Msgbox Mid(“Hyderabad”, 7) ‘bad
Msgbox Mid(“Hyderabad”, 4, 3) ‘era
17) Trim
18) LTrim
19) RTrim
Ex:
Dim val
val =” VBScript ”
msgbox val
Msgbox Trim(val)
Msgbox LTrim(val)
Msgbox RTrim(val)
20) LCase Function
Converts Upper case values to lower case.
Ex:
Dim val
val = “HYDERABAD”
Msgbox LCase(val) ‘hyderabad
Msgbox LCase(“HYDERABAD”) ‘hyderabad
Msgbox LCase(“hyderabad”) ‘hyderabad
Msgbox LCase(“HYDerabad”) ‘hyderabad
Msgbox LCase(“HYD123”) ‘hyd123
Msgbox LCase(123) ‘123
21) UCase Function
Converts Lower case values to Upper case
Ex:
Dim val
val = “HYDERABAD”
Msgbox UCase(val) ‘HYDERABAD
Msgbox UCase(“HYDERABAD”) ‘HYDERABAD
Msgbox UCase(“hyderabad”) ‘HYDERABAD
Msgbox UCase(“HYDerabad”) ‘HYDERABAD
Msgbox UCase(“HYD123”) ‘HYD123
Msgbox UCase(123) ‘123
22) Cint Function
Converts String type data into Integer sub type.
When Conversion is required?
Whenever we read data then VBScript considers as String type data, in order to perform
mathemetical calculations we need to convert the data.
Ex:
Dim val, Tickets
val = InputBox (“Enter a Value”)
Msgbox VarType(val) ‘8 for String
val = Cint(val)
Msgbox VarType(val)
Tickets = Window(“Flight Reservation”).WinEdit(“Tickets:”).GetROProperty(“text”)
Msgbox VarType(Tickets) ‘8 for string
Msgbox VarType(Cint (Tickets)) ‘2 for Integer
Note: We can’t convert Alfa bytes into Integer sub type or double sub type.
23) Cdbl Function
Converts String type data into double sub type.
Ex:
Dim val, Price
val = InputBox (“Enter a Value”)
Msgbox VarType(val) ‘8 for String
val = Cdbl(val)
Msgbox VarType(val)
Price = Window(“Flight Reservation”).WinEdit(“Price:”).GetROProperty(“text”)
msgbox VarType(Price) ‘8 for String
Msgbox VarType(Cdbl(Price)) ‘5 for Double
24) VarType Function
It checks data sub type and returns constant based result.
Ex:
Dim a, b(3)
Msgbox VarType(a) ‘0 for Empty / Uninitialized
a = 100
Msgbox VarType(a) ‘2 for Integer
a = “100”
Msgbox VarType(a) ‘8 for String
Msgbox VarType(“abcd”) ‘8
Msgbox VarType(1.234)’5 for Double
Msgbox VarType(#10/10/2010#) ‘7 for date
Set a = CreateObject(“Scripting.FilesystemObject”)
Msgbox varType(a) ‘9 for Automation object
Msgbox varType(b)
b(0) = “abc”
b(1) = 123
b(2) = 1.23
b(3) = #10/10/2010#
Msgbox varType(b(0))’ 8
Msgbox varType(b(1)) ‘2
Msgbox varType(b(2))’5
Msgbox varType(b(3)) ‘7
25) Len Function
It checks length of a string or number.
Ex:
Dim a
a = “INDIA”
Msgbox Len(a) ‘5
Msgbox Len(“INDIA”) ‘5
Msgbox Len(120) ‘3
Msgbox Len(1.234) ‘5
Msgbox Len(#10/10/2010#) ’10
Msgbox Len(#10/10/10#)’10
Msgbox Len(#Sep/10/2010#) ‘9
Msgbox Len(#December/10/2010#) ’10
26) Split Function
Splits a String based on delimiter, default delimiter is space.
Dim a, b
a = “VB Script Language”
b = Split(a)
Msgbox IsArray(b)’True
Msgbox b(1) ‘Script
Dim a, b
a = “VB,Script,Language”
b = Split(a, “,”)
Msgbox IsArray(b)’True
Msgbox b(1) ‘Script
Dim a, b
a = “VB#$%Script#$%Language”
b = Split(a, “#$%”)
Msgbox IsArray(b)’True
Msgbox b(1) ‘Script
27) Join Function
Joins all elements of Array variable.
Ex:
Dim a(2)
a(0) = “VB”
a(1) =”Script”
a(2) = “Language”
Msgbox Join(a)
—————-
Dim a(2)
a(0) = “VB”
a(1) =”Script”
a(2) = “Language”
Msgbox Join(a,”@”)
28) Lbound, UBound Functions
Lbound Returns lower boundary of Array
UBound Returns upper boundary fo Array
Ex:
Dim a, b(3)
a =Array (1, 2, 3, 4, 5, 2.3, “abc”)
Msgbox LBound(a)’0
Msgbox UBound(a)’6
b(1) = 1
b(2) = 2
b(3) = 1.2
Msgbox LBound(a)’0
Msgbox UBound(a)’6
29) StrComp Function
It compares two strings based on compare mode.
It supports 3 way comparison
Two way comparison – True/False
Three way comparison – >, <, =
Compare modes
0 for Binary (based on ANSI character codes) comparison
1 for Textual comparison
Note:
Default compare mode is Binary mode.
Result Criteria:
if str1 > str2 then 1
if str1 < str2 then -1
if str1 = str2 then 0
Example:
Dim str1, str2
str1 = “UFT”
str2 = “uft”
Msgbox StrComp(str1, str2, 0) ‘-1
Msgbox StrComp(str1, str2) ‘-1
Msgbox StrComp(str1, str2, 1) ‘0
str1 = “uFT”
str2 = “Uft”
Msgbox StrComp(str1, str2, 0) ‘1
Msgbox StrComp(str1, str2) ‘1
Msgbox StrComp(str1, str2, 1) ‘0
30) InputBox Function
31) MsgBox Function
Dim val
val = InputBox (“Enter a Value”)
Msgbox “Value is: “& val
a = 100
b = 200
Msgbox “Hello UFT”
Msgbox “Hello UFT ” & a
Msgbox “hello UFT ” & a & ” Hello VBScript”
msgbox a & b
32) CreateObject Function
creats an Automation object in a specified class.
Syntax:
Set variable = CreateObject(“Class Value”)
Ex:
Dim objFso, objExcel, objWord, objConnection, objRecordset, objDictionary, objQTP
‘Create File system object, it is used to work with Drives, Folders and Files.
Set objFso = CreateObject(“Scripting.FileSystemObject”)
‘Create excel Application object, It is used to perform operations on Excel Application
Set objExcel = CreateObject(“Excel.Application”)
‘Create Word Application object, It is used to perform opertions on Word Application
Set objWord = CreateObject(“Word.Application”)
‘Create Database Connection object, It is used to connect to a database
Set objConnection = CreateObject(“Adodb.Connection”)
‘Create Database Recordset object, It is used to perform operations on database records
Set objRecordset = CreateObject(“Adodb.Recordset”)
‘Create dictionary object, It is used to define key, value pairs
Set objDictionary = CreateObject(“scripting.Dictionary”)
‘Create QTP Application object, It is used to automate UFT tool operations
Set objQTP = CreateObject(“QuickTest.Application”)
File System Operations
What is Computer File System?
It is a feature of the operating system, used to work with Drives, Folders, and Files.
Examples for File System operations
Create a Folder
Copy a Folder
Delete a Folder
Create a Text file
Delete a Text file
Read data
Write data
Compare data
Search for data etc…
How end-user performs File system Operations?
End-user performs File system operations manually with the help of Input devices if it is command-line operating system with the help of OS commands.
How to perform automatic file system operations in VBScript?
Using File system Object we can perform automatic File system operations.
Create File System Object
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set – VBScript Statement
objFso – Variable
CreateObject – VBScript Built in Function
“Scripting.FileSystemObject” – Class Value
Note: Class value only varies from one object model to another.
Examples:
1. Create a Folder
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.CreateFolder “C:\Users\gcreddy\Desktop\QTP”
Set objFso = Nothing ‘To release the memory
Note:
Set objFso = Nothing statement for releasing the memory immediatly, otherwise memory
will be released after re-launching the UFT tool.
It is not mandatory statement, but best practice (Standard)
Follow the three steps:
i. Create Automation Object
ii. Use Object
iii. Close Object
2) Check the existence of QTP folder, if not exists then create the folder.
Dim objFso, FolderPath
FolderPath = “C:\Users\gcreddy\Desktop\QTP”
Set objFso = CreateObject(“Scripting.FileSystemObject”)
If Not objFso.FolderExists(FolderPath) Then
objFso.CreateFolder Folderpath
End If
Set objFso = Nothing
3) Copy a Folder
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.CopyFolder “C:\Users\gcreddy\Desktop\QTP”, “C:\”
Set objFso = Nothing
—————
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.CopyFolder “C:\Users\gcreddy\Desktop\QTP”, “C:\UFT”
Set objFso = Nothing
4) Delete a Folder
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.DeleteFolder “C:\Users\gcreddy\Desktop\QTP”
Set objFso = Nothing
5) Check the existence of QTP folder, if exists then delete the folder.
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
If objFso.FolderExists(“C:\Users\gcreddy\Desktop\QTP”) Then
objFso.DeleteFolder “C:\Users\gcreddy\Desktop\QTP”
End If
Set objFso = Nothing
6) Create a Text file
Note: File System Object is only used for Drives, Folders and Flat files.
We can create and delete other types of also, but we can’t perform internal operations like Reading, Writing etc…
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.CreateTextFile “C:\Users\gcreddy\Desktop\QTP.txt”
objFso.CreateTextFile “C:\Users\gcreddy\Desktop\QTP.doc”
objFso.CreateTextFile “C:\Users\gcreddy\Desktop\QTP.xls”
objFso.CreateTextFile “C:\Users\gcreddy\Desktop\QTP.pdf”
Set objFso = Nothing
7) Delete a Text file
Dim objFso
Set objFso = CreateObject(“Scripting.FileSystemObject”)
objFso.DeleteFile “C:\Users\gcreddy\Desktop\QTP.txt”
objFso.DeleteFile “C:\Users\gcreddy\Desktop\QTP.doc”
objFso.DeleteFile “C:\Users\gcreddy\Desktop\QTP.xls”
objFso.DeleteFile “C:\Users\gcreddy\Desktop\QTP.pdf”
Set objFso = Nothing
External Operations
Create a Text file
Delete a Text file
Check existence of a File
Count size
etc…
Internal operations
Read
Read character by Character
Read Line by Line
Read All
Write
Write Continuously
Write Line by Line
Append
Compare
Compare two text files by Size (*External operation)
Compare two text files by Text
Compare two text files by Binary values.
Search operations
> using the File System object we can perform External File operations
> Using Text stream object we can perform Internal operations.
> Using File System Object we can create Text stream object.
Create File System Object
Set Variable = CreateObject(“Scripting.FileSystemObject”)
Create a Text Stream object
Set Variable = FileSystemObject.CreateTextFile / OpenTextFile(“File path”, File mode)
File Modes for Text files
i. 1 for Read
ii. 2 for Write
iii. 8 for Append
Note: Read mode is the default mode.
Examples:
8) Read a Text File Character by Character
Dim objFso, objTextstream, myChar
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextstream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\QTP.txt”)
Do While objTextstream.AtEndOfStream = False
myChar = objTextstream.Read(1)
Msgbox myChar
Loop
objTextstream.Close
Set objTextstream = Nothing
Set objFso = Nothing
9) Read a Text File Line by Line
Dim objFso, objTextstream, myLine
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextstream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\QTP.txt”)
Do While objTextstream.AtEndOfStream = False
myLine = objTextstream.ReadLine
Msgbox myLine
Loop
objTextstream.Close
Set objTextstream = Nothing
Set objFso = Nothing
10) Read a text file (read all)
Dim objFso, objTextstream, myContent
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextstream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\QTP.txt”)
Do While objTextstream.AtEndOfStream = False
myContent = objTextstream.ReadAll
Msgbox myContent
Loop
objTextstream.Close
Set objTextstream = Nothing
Set objFso = Nothing
——————————————
Dim objFso, objTextstream, myContent
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextstream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\UFT.txt”)
Do While objTextstream.AtEndOfStream = False
myContent = objTextstream.ReadAll
Print myContent
Loop
objTextstream.Close
Set objTextstream = Nothing
Set objFso = Nothing
————————————-
Note: Print command is not a Global VBScript command, it is only for UFT.
11) Write data to a Text file
Dim objFso, objTextstream, num1, num2, result
num1 = 10 : num2 = 30 : result = num1 + num2
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextStream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\testdata.txt”, 2)
objTextStream.Write “Addition of num1, num2 is: ” & result
objTextstream.Close
Set objTextStream = Nothing
Set objFso = Nothing
12) Append data to a Text file
Dim objFso, objTextstream, num1, num2, result
num1 = 10 : num2 = 60 : result = num1 + num2
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextStream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\testdata.txt”, 8)
objTextStream.Write “Addition of num1, num2 is: ” & result
objTextstream.Close
Set objTextStream = Nothing
Set objFso = Nothing
——————————
Dim objFso, objTextstream, num1, num2, result
num1 = 10 : num2 = 80 : result = num1 + num2
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextStream = objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\testdata.txt”, 8)
objTextStream.WriteLine “Addition of num1, num2 is: ” & result
objTextstream.Close
Set objTextStream = Nothing
Set objFso = Nothing
VBScript Excel Object Model
Excel Application operations using Excel Application Object
Excel Application Object: It is used to perform operations on Excel Application.
Create Excel Application Object:
Set Variable = CreateObject(“Excel.Application”)
———————-
Excel Application
Excel Workbook / File
Excel Worksheet / Sheet
Excel File Operations using VBScript Examples:
1) Create an Excel file
Dim objExcel
Set objExcel = CreateObject(“Excel.Application”)
objExcel.Visible = True ‘To view the operation (Creating Excel file) during Execution.
objExcel.Workbooks.Add ‘Create New Workbook / file
objExcel.ActiveWorkbook.SaveAs “C:\Users\gcreddy\Desktop\QTP.xls” ‘Save the Excel workbook /file
objExcel.Quit ‘To close the Excel Application
Set objExcel = Nothing ‘To release the memory
2) Check the existence of QTP file, if not exist then create the file.
Dim objFso, objExcel, FilePath
FilePath = “C:\Users\gcreddy\Desktop\QTP.xls”
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objExcel = CreateObject(“Excel.Application”)
If Not objFso.FileExists(FilePath) Then
objExcel.Workbooks.Add ‘Create New Workbook / file
objExcel.ActiveWorkbook.SaveAs FilePath
objExcel.Quit
End If
Set objExcel = Nothing ‘To release the memory
3) Check the existence of QTP file, if exists then open the file and enter some data, If not exist then create the file and enter some data (Using Excel Application Object only)
Dim objFso, objExcel, FilePath
FilePath = “C:\Users\gcreddy\Desktop\QTP.xlsx”
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objExcel = CreateObject(“Excel.Application”)
If Not objFso.FileExists(FilePath) Then
objExcel.Workbooks.Add
objExcel.Worksheets(1).Cells(1, 1) = “Hello UFT”
objExcel.ActiveWorkbook.SaveAs FilePath
Else
objExcel.Workbooks.Open (FilePath)
objExcel.Worksheets(1).Cells(1, 1) = “Hello UFT”
objExcel.ActiveWorkbook.Save
End If
objExcel.Quit
Set objExcel = Nothing
Excel Objects
1) Excel Application Object
It is used to perform operations on Excel Application.
Set Variable = CreateObject(“Excel.Application”)
——————————–
Excel Workbook object
It is used to work with specified Excel file / Workbook
Set Variable = ExcelApplicationObject.Workbooks.Add / Open(“Filepath”)
Excel Worksheet object
It is used to work with specified work sheet
Set Varaible = ExcelWorkbookObject.Worksheets(Sheet Id / “Sheet name”)
——————————————————-
Excel Application is always only one.
We may have one or more Workbooks.
We may have multiple sheets in every workbook.
———————————————
> Using (“Excel.Application”) class value we create Excel Application Object.
> We create Excel Workbook object using Excel Application Object.
> We create Excel Worksheet object using Excel workbook object.
————————————–
Difference between File system object model and Excel object model in case of Sub objects.
In File system object model creating Text stream object is mandatory to perform File internal operations like Read, Write, Compare, Search etc…
In Excel Object model creating sub and sub-sub objects optional, if you want to work with multiple files and multiple sheets then we can use sub and sub-sub objects.
4) Check the existence of QTP file, if exists then open the file and enter some data, If not exist then create the file and enter some data (Using Main and sub objects)
Dim objFso, objExcel, objWorkbook, objWorksheet, FilePath
FilePath = “C:\Users\gcreddy\Desktop\QTP.xlsx”
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objExcel = CreateObject(“Excel.Application”)
If Not objFso.FileExists(FilePath) Then
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Cells(1, 1) = “Hello UFT”
objWorkbook.SaveAs FilePath
Else
Set objWorkbook = objExcel.Workbooks.Open (FilePath)
Set objWorksheet = objworkbook.Worksheets(1)
objWorksheet.Cells(1, 1) = “Hello UFT”
objWorkbook.Save
End If
objExcel.Quit
Set objExcel = Nothing
5) Read data from an Excel file and Compare 2 Columns (One to One Binary Comparison).
Dim objExcel, objWorkbook, objWorksheet, i, RowsCount
Set objExcel = CreateObject(“Excel.Application”)
Set objWorkbook = objExcel.Workbooks.Open(“C:\Users\gcreddy\Desktop\abcd.xls”)
Set objWorksheet = objWorkbook.Worksheets(1)
RowsCount = objWorksheet.UsedRange.Rows.Count
For i = 2 To RowsCount Step 1
Expected = objWorksheet.Cells(i, 1)
Actual = objWorksheet.Cells(i, 2)
If Expected = Actual Then
objWorksheet.Cells(i, 3) = “Passed”
Else
objWorksheet.Cells(i, 3) = “Failed”
End If
Next
objWorkbook.Save
objExcel.Quit
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
Database Objects in VBScript
1. ADO Connection Object
The Database Connection Object is used to connect to a Database (any database).
Note: Connection string only varies from one database to another.
Create Database Connection Object
Set Variable = CreateObject(“Adodb.Connection”)
2. ADO Database Recordset object
The Database Recordset object is used to perform operations on Database Tables (Records)
Create Database Recordset Object
Set Variable = CreateObject(“Adodb.Recordset”)
3. ADO Command Object
The Database Command Object is used to execute a single query against a database. The query can perform actions like creating, adding, retrieving, deleting or updating records.
Create Database Command Object
Set objCommand=Server.CreateObject(“ADODB.command”)
Examples:
1. Export data from a database to an Excel file.
Dim objConnection, objRecordset, RecordCount
Dim objExcel, objWorkbook, objWorksheet
Set objConnection = CreateObject(“Adodb.Connection”)
Set objRecordset = CreateObject(“Adodb.Recordset”)
objConnection.Provider = (“Microsoft.Jet.OLEDB.4.0”)
objConnection.Open “C:\Users\gcreddy\Desktop\testdb.mdb”
objRecordset.Open “Select Agent, Password from Login”,objConnection
Set objExcel = CreateObject(“Excel.Application”)
Set objWorkbook = objExcel.Workbooks.Open(“C:\Users\gcreddy\Desktop\abcd.xls”)
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Cells(1, 1) = “Agent”
objWorksheet.Cells(1, 2) = “Password”
i = 2
Do Until objRecordset.EOF = True
objWorksheet.Cells(i, 1) = objRecordset.Fields(“Agent”)
objWorksheet.Cells(i, 2) = objRecordset.Fields(“Password”)
objRecordset.MoveNext
i = i + 1
Loop
objWorkbook.Save
objExcel.Quit
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
objRecordset.Close
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
2. Export data from a database to a Text file.
Dim objConnection, objRecordset, RecordCount
Dim objFso, objTextstream
Set objConnection = CreateObject(“Adodb.Connection”)
Set objRecordset = CreateObject(“Adodb.Recordset”)
objConnection.Provider = (“Microsoft.Jet.OLEDB.4.0”)
objConnection.Open “C:\Users\gcreddy\Desktop\testdb.mdb”
objRecordset.Open “Select Agent, Password from Login”,objConnection
Set objFso = CreateObject(“Scripting.FileSystemObject”)
Set objTextstream =objFso.OpenTextFile(“C:\Users\gcreddy\Desktop\xyz.txt”, 2)
objTextstream.WriteLine “Agent Password”
Do Until objRecordset.EOF = True
objTextstream.WriteLine objRecordset.Fields(“Agent”) &”, “& objRecordset.Fields(“Password”)
objRecordset.MoveNext
Loop
objTextstream.Close
Set objTextstream = Nothing
Set objFso = Nothing
objRecordset.Close
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
Dictionary Object
Dictionary Object is used to define key, value pairs.
It is equivalent to Associated Array in Perl Script.
VBScript vs. Perl in the case of Variables.
VBScript Perl
—————————————–
Scalar Variables Scalar Variables
Array Variables Array variables
Dictionary Object Associated Arrays / Hash Variables
Array vs. Associate Array
In case of Arrays user can define values only, keys (Indexes) are pre-defined.
Din a(3)
a(0) = “India”
a(1) = 100
a(2) = #10/10/2010#
a(3) = “abcd”
Index Values
or
Key
——————–
In case of Associated Array/Dictionary object user can deine key, value pairs.
Dictionary Object Example:
Dim objDictionary
Set objDictionary = CreateObject(“Scripting.Dictionary”)
objDictionary.Add “Agent”, “Hyderabad”
objDictionary.Add “Password”, “mercury”
objDictionary.Add “AppPath”, “C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe”
objDictionary.Add 1, 100
objDictionary.Add “*”, “abc”
objDictionary.Add “d”, #10/10/2012#
Msgbox objDictionary.Count ‘6
objDictionary.Remove(“*”)
Msgbox objDictionary.Count ‘5
Msgbox objDictionary.Exists(“d”) ‘True
Msgbox objDictionary.Exists(“a”) ‘False
objDictionary.RemoveAll
Msgbox objDictionary.Count ‘0
Debugging VBScript Programs
1. What is Debugging?
Locating and isolating Errors through Step by Step execution is called Debugging.
Note: Debugging Scripts is Optional.
2. When is Debugging Required?
Scenario 1:
The script is not showing errors and providing correct Output – Debugging is not required.
Scenario 2:
The script is showing errors- Debugging is optional
Note: First correct the errors then most of time we can get correct output, otherwise
we can debug the script.
Scenario 3:
The script is not showing errors and not providing correct Output – Debugging is required.
Note: Whenever Script is not showing any errors and not providing correct output then
Debugging is required.
3. How to Debug Scripts?
Using VBScript debug commands and breakpoints we can debug scripts.
Important Debug Commands:
a. Step Into (F11)
1) It starts the Script Execution.
2) It executes one statement at a time.
3) If is function call, opens the function and executes one function statement at a time.
b. Step Over (F10)
1) It executes one statement at a time.
2) If it is a function call, it executes all function statements at a time.
Note: Once we open the function using “Step Into” command then “Step Over” executes
one statement(function) at a time only.
c. Step Out (Shift + F11)
1) It executes all remaining function statements at a Time.
d. Breakpoints (F9)
Example:
Dim a, b, c
a = 10
b = 20
c = a+b
a = 5
b = 7
c = a*b
Call Login(“gcreddy”, “mercury”)
a = 20
b = 3
c = a^b
a = 5
b = 7
c = a-b
a =100
Error Handling in VBScript
Handling expected and unexpected Errors
Expected Errors:
Whenever we use Invalid input then we can expect Errors.
Note: We use Invalid input for Negative Testing.
Unexpected Errors:
i. Resource missing
ii. Insufficient Resource
iii. Resource Response
How to Handle Errors:
i. Using Conditional Statements
ii. Using some built-in Functions
iii. Using Exit Statement
iv. Using Option Explicit Statement
v. On Error Statement
Etc,