Blog to understand automation concepts in QTP, Selenium Webdriver and Manual Testing concepts

RegExp Object for regular expression using VBScript in QTP

VBScript provides a RegExp object to handle regular expressions.This object allows you to find regular expression matches in strings, and replace regex matches in strings with other strings.

Properties of RegExp Object

Following are the properties of regexp object:

IgnoreCase:  By default regular expression is case sensitive, to make it case insensitive, set value as “True”

Pattern: We can define the pattern of regular expression in the pattern property. Pattern can include literal and meta characters like .,*,/d as discussed in the earlier post on how to create regular expressions in QTP

Global: To return or replace all matches, set Global as True. If set as False, finds the first match only


‘’Defining a regular expression
Set newRegExp = New RegExp
newRegExp.IgnoreCase = True
newRegExp.Global = True
newRegExp.Pattern = ".*an"

Methods of RegExp object


Execute method: executes a match against the specified string. Returns a Matchescollection, which contains a Match object for each match. The Matchobject can also contain SubMatches collection. 

Execute method has following properties:

o    Item

       §  Item.value – value of item in the collection
       §  Firstindex – First instance of match location

o    Count

Count of instances matching the regular expression

Replace method: replaces the part of the string found in a match with another string.Does replace the pattern defined for object with the replace value.                                          Syntax: regExpobj.replace(teststring,”newpattern”)

Test method: executes an attempted match and returns True or False based on match found.


Sample Code explaining properties and methods of RegExp Object.


Set newRegExp = New RegExp
newRegExp.IgnoreCase = True
newRegExp.Global = True
newRegExp.Pattern = ".*an"
testString = "this ant is an insect"
Set colmatch = newRegExp.Execute(teststring)
For each match in colmatch
         msgbox match.Value
        msgbox colmatch.count
Next
boolMatch = newRegExp.Test(teststring)
msgbox boolMatch
newRegExp.pattern ="a"
strString = newRegExp.replace(teststring,"b")
msgbox strstring


To understand more on how to use regular expressions in qtp, click here


Useful VB Script Functions for QTP - String, Date, Array and Control flows

String Function:


Len: Returns the number of characters in a string or the number of bytes required to store a variable. 

Len(str)    
   

LCase:  Returns a string that has been converted to lowercase.


Ucase:  Returns a string that has been converted to uppercase.


Left: Returns a specified number of characters from the left side of a string.

Left(str,Length)

Right: Returns a specified number of characters from the right side of a string.

Right(str,Length)

Mid: Returns a specified number of characters from a string.

Mid(txt,start,[length])

Replace: Replaces string with another string

Replace(expression, find, replacewith[, start[, count[, compare]]])

Space: Returns a string consisting of the specified number of spaces.

Space (number)

Split: Returns a zero-based, one-dimensional array containing a specified number of substrings.

Split(expression[,delimiter[,count[,compare]]])

StrComp: Returns a value indicating the result of a string comparison. 

StrComp(string1,string2[,compare])

StrReverse: Returns a string in which the character order of a specified string is reversed.

strReverse(string)

LTrim; RTrim; and Trim: Returns a copy of a string without leading spaces (LTrim), trailing spaces (RTrim), or both leading and trailing spaces (Trim).

Trim(str)
LTrim(str)
RTrim(str)

InStr: Returns the position of the first occurrence of one string within another.

InStr([start,]string1,string2[,compare])

InStrRev: Returns the position of an occurrence of one string within another, from the end of string. 

InStrRev(string1,string2[,start[,compare]])

Array Functions:


IsArray: Returns a Boolean value indicating whether a variable is an array.

IsArray(variable)

UBound: Returns the largest available subscript for the indicated dimension of an array.

UBound(arrayname[,dimension])

Join - The Join function returns a string that consists of a number of substrings in an array.

Join(list[,delimiter])


Date Functions:

Date: Returns the current system date.

Time: Returns a Variant of subtype Date indicating the current system time.


DateAdd: Returns a date to which a specified time interval has been added. 

DateAdd (interval, number, date): internal can be ‘yyyy’, ‘dd’,’mm’


DateDiff: Returns the number of intervals between two dates. 

DateDiff("yyyy","September 01, 2012","September 01, 2010")



DatePart: Returns the specified part of a given date. 

DatePart("yyyy","May 01, 2012") 


Day: Returns a whole number between 1 and 31, inclusive, representing the day of the month. Day(date)


Month: Returns a whole number between 1 and 12, inclusive, representing the month of the year.


MonthName: Returns a string indicating the specified month.


Weekday: Returns a whole number representing the day of the week.  

Weekday ("November 03, 2010") 


WeekdayName: Returns a string indicating the specified day of the week. 

WeekdayName (4)


Year: Returns a whole number representing the year.


Hour: Returns a whole number between 0 and 23, inclusive, representing the hour of the day


Minute: Returns a whole number between 0 and 59, inclusive, representing the minute of the hour.


Second: Returns a whole number between 0 and 59, inclusive, representing the second of the minute. 


Now: Returns the current date and time according to the setting of your computer's system date and time.


Control Flows:

Do...Loop: Repeats a block of statements while a condition is True or until a condition becomes True.


For...Next Statement: For...Next: Repeats a group of statements a specified number of times.


For Each...Next: Repeats a group of statements for each element in an array or collection.


If...Then...Else: Conditionally executes a group of statements, depending on the value of an expression.


Select Case: Executes one of several groups of statements, depending on the value of an expression.


While...Wend: Executes a series of statements as long as a given condition is True.


With: Executes a series of statements on a single object.


Understanding Extern, Crypt and Environment Utility objects in QTP

In this post, We  will discuss about following utility objects in QTP.

Crypt Object
Environment Object
Extern Object


1. Crypt Object 


 Crypt object is used to encrypt the string. An encrypted string is generated for the provided string during Crypt.Encrypt method. This is useful for providing Password details and entering data in a field as setsecure.

Syntax : crypt.encrypt(strPass)


If we want to use this method through VBScript, we can create an instance of object using

Set crypt= CreateObject("Mercury.Encrypter")


2. Environment Object


Environment Object enables QTP to retrieve information  from the environment variables defined in QTP, Add new environment variables, and loading environment variables from external file.

Below are described the properties and method for Environment object.


Environment.value(EnvName) = EnvValue  will set the value of environment variable EnvName as EnvValue.


envVal = Environment.value(EnvName) will get the value of environment variable envName in variable envVal.


Environment.ExternalFileName will returns the ExternalFileName associated with the test.Will return “” if no externalfile is associated.


Environment.LoadFromFile(FileName) will load external user defined environment variables from the file specified.


3. Extern Object


By defining methods using extern object in QTP, we can call functions from external libraries. This is very useful to run functions from external DLL’s.

Using Extern Object

a. Declare Extern defintion

The syntax for declaring an extern object is as follows:

Extern.Declare micHwnd,UserProcedureName,DLLName,ProcedureinDLL, micString, micint


The above declaration declares user defined procedure UserProcedureName from procedure ProcedureinDLL in the DLL specified in DLLName. Next arguments are the datatype of various argument to be used when calling the procedure defined in extern.declare.


e.g : Extern.Declare micLong, "InternetOpen", "Wininet.dll", "InternetOpenA", micString, micDWord, micString, micString, micDWord will call InternetOpenA procedure from DLL  “Wininet.dll” on calling the method “InternetOpen”.Similarly other procedure from DLL can be declared using extern.declare.


b.Using procedure defined in Extern.declare

 Once we have defined the procedures using Extern.declare, we can call as shown below:

objIEOpen= Extern.InternetOpen("QTP_FTP", 1, vbNullChar, vbNullChar, 0).

Note we have to provide arguments with data type as defined during extern declaration above.
This will execute the procedure in DLL as specified in extern.declare.