Вы находитесь на странице: 1из 12

QTP Personal Notes

Regular Expressions in QTP:


A regular expression is a string that describes or matches a set of strings. It is often called a pattern as it describes set of strings. Given underneath is one of the most widely used and ever confused BackLash character. The remaining expressions are serialized below that. Using the Backslash Character A backslash () instructs QuickTest to treat the next character as a literal character, if it is otherwise a special character. The backslash () can also instruct QuickTest to recognize certain ordinary characters as special characters. For example, QuickTest recognizes n as the special newline character. For example: w matches the character w w is a special character that matches any word character including underscore For example, in QTP, while entering the URL of a website, http://mercurytours.mercuryinteractive.com The period would be mistaken as an indication of a regular expression. To indicate that the period is not part of a regular expression, you would enter it as follows: mercurytours.mercuryinteractive.com Note: If a backslash character is used before a character that has no special meaning, the backslash is ignored. For example, z matches z. Expressions & Explanation Special characters and sequences are used in writing patterns for regular expressions. The following describes the characters and sequences that can be used. Marks the next character as either a special character or a literal. For example, n matches the character n. n matches a newline character. The sequence \ matches and ( matches (. ^ Matches the beginning of input. $ Matches the end of input. * Matches the preceding character zero or more times. For example, zo* matches either z or zoo.

+ Matches the preceding character one or more times. For example, zo+ matches zoo but not z. ? Matches the preceding character zero or one time. For example, a?ve? matches the ve in never. . Matches any single character except a newline character. (pattern) Matches pattern and remembers the match. The matched substring can be retrieved from the resulting Matches collection, using Item [0][n]. To match parentheses characters ( ), use ( or ). xy Matches either x or y. For example, zwood matches z or wood. (zw)oo matches zoo or wood. {n} n is a nonnegative integer. Matches exactly n times. For example, o{2} does not match the o in Bob, but matches the first two os in foooood. {n,} n is a nonnegative integer. Matches at least n times. For example, o{2,} does not match the o in Bob and matches all the os in foooood. o{1,} is equivalent to o+. o{0,} is equivalent to o*. {n,m} m and n are nonnegative integers. Matches at least n and at most m times. For example, o{1,3} matches the first three os in fooooood. o{0,1} is equivalent to o?. [xyz] A character set. Matches any one of the enclosed characters. For example, [abc] matches the a in plain. [^xyz] A negative character set. Matches any character not enclosed. For example, [^abc] matches the p in plain. [a-z] A range of characters. Matches any character in the specified range. For example, [a -z] matches any lowercase alphabetic character in the range a through z. [^m-z] A negative range characters. Matches any character not in the specified range. For example, [m-z] matches any character not in the range m through z. b Matches a word boundary, that is, the position between a word and a space. For example, erb matches the er in never but not the er in verb. B Matches a non-word boundary. ea*rB matches the ear in never early.

d Matches a digit character. Equivalent to [0-9]. D Matches a non-digit character. Equivalent to [^0-9]. f Matches a form-feed character. n Matches a newline character. r Matches a carriage return character. s Matches any white space including space, tab, form-feed, etc. Equivalent to [ fnrtv]. S Matches any nonwhite space character. Equivalent to [^ fnrtv]. t Matches a tab character. v Matches a vertical tab character. w Matches any word character including underscore. Equivalent to [A -Za-z0-9_]. W Matches any non-word character. Equivalent to [^A-Za-z0-9_]. num Matches num, where num is a positive integer. A reference back to remembered matches. For example, (.)1 matches two consecutive identical characters. n Matches n, where n is an octal escape value. Octal escape values must be 1, 2, or 3 digits long. For example, 11 and 11 both match a tab character. 011 is the equivalent of 01 & 1. Octal escape values must not exceed 256. If they do, only the first two digits comprise the expression. Allows ASCII codes to be used in regular expressions. xn Matches n, where n is a hexadecimal escape value. Hexadecimal escape values must be exactly two digits long. For example, x41 matches A. x041 is equivalent to x04 & 1. Allows ASCII codes to be used in regular expressions.

Regular Expression: Regular Expressions enable Quick Test to identify objects and text strings with varyingegular Expression:

Regular Expressions enable Quick Test to identify objects and text strings with varying values.Regular expressions are used when the objects value is dynamically changed. A regular expression is a string that specifies a complex search phrase. By using special characters such as a period (.), asterisk (*), caret (^), and brackets ([ ]), etc. you define the conditions of the search. Steps to Specify Regular Expressions for an object in Object Repository: 1. Go to Object Repository. Navigation: Resources>>Object Repository. 2. Select the Object which you want to specify regular expression. 3. In the right side you can observe properties of that object. 4. Select the property which you want to specify regular expression. 5. Click on the property value of that property and the property value is editable. There is a configure button appeared with the symbol <#> 6. Click on the configure button or use Ctrl+F11 to open configure window. 7. Select Regular Expression check box. a. If the property value is having any special characters then QTP will display a dialog with asking Do you want to add the backslash (\) before each special character in order to treat it literally? b. If you click on yes QTP will automatically gives the backslash before every special character. So that the special characters will be treated as literal. 8. Now specify the regular expression in constant edit box. 9. Click on OK. 10. Observe that a symbol A.* is added in property field. This means, that property is using regular expression. 11. Highlight the object in application to ensure that the provided regular expression is working fine. In Dynamic descriptive programming we create a descriptive object using description.create. While specifying properties we can give regular expressions. By default the properties will be treated as regular expression when you added to description object.

Set oDescription=Description.Create oDescription("micclass").value= "Browser" oDescription("openurl").value= "http://www.google.co.in" Here in this URL property there are three dots (.) which can be treated as regular expressions. These dots will work as regular expressions because by default the property values will be treated as regular expressions. There is a property called regularexpression for description object which is used to set the property values to work as regular expressions or as a literal string values. In the Above example, set the regularexpression property to false to treat "http://www.google.co.in" as a literal string. Set oDescription=Description.Create oDescription("micclass").value= "Browser" oDescription("openurl").value= "http://www.google.co.in" oDescription("openurl").regularexpression = False oDescription("openurl").regularexpression = False Note: You can always use forward slash symbol (\) before every special character to treat a property value as literal character. Use of Regular Expression in QTP We can use regular expressions in QTP when 1. Defining Properties of an Object 2. Verifying data using check points 3. Parameterize an object property or check point Note: You can use regular expressions only for values of type string.

By default all properties which you pass from object property are strings / Constants.

When using action parameters to parameterize a check point or an object repository, those action parameters data type must be string type. If you specify any other data type, that will not be treated as regular expression. We can assign property values to variables in QTP when using descriptive programming. When assigning regular expression to any variable make sure that regular expression is in string format. When any special character in a regular expression is preceded by a backslash (\), QuickTest searches for the literal character. If your searching for a character * in a string, then you need to give the pattern as \* Defining Properties for an Object using Regular Expressions If you expect any change in the object property value at run session, Regular Expressions are useful to handle that dynamic change of the property value. Example: If you login to gmail.com, the browser title will be Gmail Inbox MailID Gmail Inbox qtpworld@gmail.com Here Inbox is the selected folder name in Gmail and MailID is login user mail id. These two are not constants. If you select sent mail folder immediately the browser title will be changed. In this case you may get object identification problems if youre using the name property for the browser object. To overcome this dynamic change in the application we need to use regular expression in object properties. For this you have to use Gmail - .* - .*@gmail\.com as a Regular Expression. Like this if you expect any object property is dynamic you can use regular expressions as required. values.Regular expressions are used when the objects value is dynamically changed. A regular expression is a string that specifies a complex search phrase. By using special characters such as a period (.), asterisk (*), caret (^), and brackets ([ ]), etc. you define the conditions of the search. Steps to Specify Regular Expressions for an object in Object Repository: 1. Go to Object Repository. Navigation: Resources>>Object Repository. 2. Select the Object which you want to specify regular expression. 3. In the right side you can observe properties of that object. 4. Select the property which you want to specify regular expression.

5. Click on the property value of that property and the property value is editable. There is a configure button appeared with the symbol <#> 6. Click on the configure button or use Ctrl+F11 to open configure window. 7. Select Regular Expression check box. a. If the property value is having any special characters then QTP will display a dialog with asking Do you want to add the backslash (\) before each special character in order to treat it literally? b. If you click on yes QTP will automatically gives the backslash before every special character. So that the special characters will be treated as literal. 8. Now specify the regular expression in constant edit box. 9. Click on OK. 10. Observe that a symbol A.* is added in property field. This means, that property is using regular expression. 11. Highlight the object in application to ensure that the provided regular expression is working fine.

In Dynamic descriptive programming we create a descriptive object using description.create. While specifying properties we can give regular expressions. By default the properties will be treated as regular expression when you added to description object. Set oDescription=Description.Create oDescription("micclass").value= "Browser" oDescription("openurl").value= "http://www.google.co.in" Here in this URL property there are three dots (.) which can be treated as regular expressions. These dots will work as regular expressions because by default the property values will be treated as regular expressions. There is a property called regularexpression for description object which is used to set the property values to work as regular expressions or as a literal string values. In the Above example, set the regularexpression property to false to treat "http://www.google.co.in" as a literal string. Set oDescription=Description.Create oDescription("micclass").value= "Browser"

oDescription("openurl").value= "http://www.google.co.in" oDescription("openurl").regularexpression = False oDescription("openurl").regularexpression = False Note: You can always use forward slash symbol (\) before every special character to treat a property value as literal character.

Use of Regular Expression in QTP We can use regular expressions in QTP when 1. Defining Properties of an Object 2. Verifying data using check points 3. Parameterize an object property or check point Note: You can use regular expressions only for values of type string. By default all properties which you pass from object property are strings / Constants. When using action parameters to parameterize a check point or an object repository, those action parameters data type must be string type. If you specify any other data type, that will not be treated as regular expression. We can assign property values to variables in QTP when using descriptive programming. When assigning regular expression to any variable make sure that regular expression is in string format. When any special character in a regular expression is preceded by a backslash (\), QuickTest searches for the literal character. If your searching for a character * in a string, then you need to give the pattern as \*

Defining Properties for an Object using Regular Expressions If you expect any change in the object property value at run session, Regular Expressions are useful to handle that dynamic change of the property value. Example:

If you login to gmail.com, the browser title will be Gmail Inbox MailID Gmail Inbox qtpworld@gmail.com Here Inbox is the selected folder name in Gmail and MailID is login user mail id. These two are not constants. If you select sent mail folder immediately the browser title will be changed. In this case you may get object identification problems if youre using the name property for the browser object. To overcome this dynamic change in the application we need to use regular expression in object properties. For this you have to use Gmail - .* .*@gmail\.com as a Regular Expression. Like this if you expect any object property is dynamic you can use regular expressions as required.

QTP Regular Expressions


A regular expression is a string that describes or matches a set of strings. It is often called a pattern as it describes set of strings. You can define a regular expression for a constant value, a Data Table parameter value, an Environment parameter value, or a property value in a programmatic description. A backslash (\) instructs QuickTest to treat the next character as a literal character, if it is otherwise a special character. The backslash (\) can also instruct QuickTest to recognize certain ordinary characters as special characters. Example: w matches the character w \w is a special character that matches any word character including underscore. Example: In QTP, while entering the URL of a website, http://QTPhelp.com The period would be mistaken as an indication of a regular expression. To indicate that the period is not part of a regular expression, you would enter it as follows: http://QTPhelp\.com If a backslash character is used before a character that has no special meaning, the backslash is ignored. Screen Shot for Regular Expression from Object Repository:

Regular Expression Dialogue box

Expressions & Explanation

Character Description ^ Matches the beginning of input. $ Matches the end of input. * + Matches the preceding character one or more times. For example, "zo+" matches "zoo" but not "z". ? Matches the preceding character zero or one time. For example, "a?ve?" matches the "ve" in "never . Matches any single character except a newline character. xy Matches either x or y. For example, "zwood" matches "z" or "wood". "(zw)oo" matches "zoo" or "wood". {n} n is a nonnegative integer. Matches exactly n times. For example, "o{2}" does not match the "o" in "Bob," but matches the first two o's in "foooood". {n,} n is a nonnegative integer. Matches at least n times. For example, "o{2,}" does not match the "o" in "Bob" and matches all the o's in "foooood." "o{1,}" is equivalent to "o+". "o{0,}" is equivalent to "o*".
Matches the preceding character zero or more times.

{n,m}

[xyz]

[^xyz]

[a-z]

[^m-z]

\b

\B \d \D \f \n \r \s \S \t \v \w \W \num

\n

m and n are nonnegative integers. Matches at least n and at most m times. For example, "o{1,3}" matches the first three o's in "fooooood." "o{0,1}" is equivalent to "o?". A character set. Matches any one of the enclosed characters. For example, "[abc]" matches the "a" in "plain". A negative character set. Matches any character not enclosed. For example, "[^abc]" matches the "p" in "plain". A range of characters. Matches any character in the specified range. For example, "[a-z]" matches any lowercase alphabetic character in the range "a" through "z". A negative range characters. Matches any character not in the specified range. For example, "[m-z]" matches any character not in the range "m" through "z". Matches a word boundary, that is, the position between a word and a space. For example, "er\b" matches the "er" in "never" but not the "er" in "verb". Matches a non-word boundary. "ea*r\B" matches the "ear" in "never early". Matches a digit character. Equivalent to [0-9]. Matches a non-digit character. Equivalent to [^0-9]. Matches a form-feed character. Matches a newline character. Matches a carriage return character. Matches any white space including space, tab, form-feed, etc. Equivalent to "[\f\n\r\t\v]". Matches any nonwhite space character. Equivalent to "[^\f\n\r\t\v]". Matches a tab character. Matches a vertical tab character. Matches any word character including underscore. Equivalent to "[A-Za-z0-9_]". Matches any non-word character. Equivalent to "[^A-Za-z0-9_]". Matches num, where num is a positive integer. A reference back to remembered matches. For example, "(.)\1" matches two consecutive identical characters. Matches n, where n is an octal escape value.

\xn

Octal escape values must be 1, 2, or 3 digits long. For example, "\11" and "\011" both match a tab character. "\0011" is the equivalent of "\001" & "1". Octal escape values must not exceed 256. If they do, only the first two digits comprise the expression. Allows ASCII codes to be used in regular expressions. Matches n, where n is a hexadecimal escape value. Hexadecimal escape values must be exactly two digits long. For example, "\x41" matches "A". "\x041" is equivalent to "\x04" & "1". Allows ASCII codes to be used in regular expressions.

Вам также может понравиться