qtp day 5

56
QTP QTP

Upload: prashanth-somashekhar

Post on 13-Dec-2014

620 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Qtp day 5

QTPQTP

Page 2: Qtp day 5

Day5: Advanced QTPDay5: Advanced QTP

Recovery scenarioRecovery scenarioOptional stepsOptional stepsFramework ApproachFramework ApproachWorking with Dynamic Working with Dynamic ObjectsObjects

Page 3: Qtp day 5

Recovery scenarioRecovery scenario

When executing scripts we may When executing scripts we may get some Unexpected errors.To get some Unexpected errors.To recover the test and continue recover the test and continue running script from these running script from these unexpected errors we use unexpected errors we use Recovery Scenarios Recovery Scenarios

Page 4: Qtp day 5

Recovery scenarioRecovery scenario

What happens in  Recovery What happens in  Recovery Scenarios?Scenarios?

Trigger EventTrigger Event

Recovery OperationsRecovery Operations

Post-Recovery Test Run OptionPost-Recovery Test Run Option

Page 5: Qtp day 5

Recovery scenarioRecovery scenario

Trigger Event:Trigger Event:The event that interrupts your run The event that interrupts your run session. For example a window that session. For example a window that may pop up on screen. may pop up on screen.

Page 6: Qtp day 5

Recovery scenarioRecovery scenario

Recovery Operations:Recovery Operations:

The operations to perform to enable The operations to perform to enable QTP to continue running the test QTP to continue running the test after the trigger event interrupts the after the trigger event interrupts the run session. For example, clicking an run session. For example, clicking an OK button in a pop-up window. OK button in a pop-up window.

Page 7: Qtp day 5

Recovery scenarioRecovery scenarioPost-Recovery Test Run Option:Post-Recovery Test Run Option: The instructions on how QTP should The instructions on how QTP should proceed after the recovery operations have proceed after the recovery operations have been performed, and from which point in been performed, and from which point in the test QTP should continue. For example, the test QTP should continue. For example, you may want to restart a test from the you may want to restart a test from the beginning, or skip a step entirely and beginning, or skip a step entirely and continue with the next step in the test. continue with the next step in the test. Recovery scenarios are saved in recovery Recovery scenarios are saved in recovery scenario files having the extension .qrs. A scenario files having the extension .qrs. A recovery scenario file is a logical collection recovery scenario file is a logical collection of recovery scenarios, grouped according to of recovery scenarios, grouped according to our specific requirements. our specific requirements.

Page 8: Qtp day 5

Recovery scenarioRecovery scenario

Recovery scenario manger can Recovery scenario manger can handle following four events: handle following four events: 1. Pop-up window: To handle 1. Pop-up window: To handle unwanted pop ups.unwanted pop ups.2. Object state: To handle object 2. Object state: To handle object related errors at runtime.related errors at runtime.3. Test run error: To handle vb script 3. Test run error: To handle vb script statement errors at runtime.statement errors at runtime.4. Application crash: To handle 4. Application crash: To handle crashed applications at runtime. crashed applications at runtime.

Page 9: Qtp day 5

Recovery scenarioRecovery scenario

1.Recovery Scenario for Popup 1.Recovery Scenario for Popup Window:Window:Steps to follow to handle unwanted Steps to follow to handle unwanted popups:popups:Trigger Event Steps:Trigger Event Steps:Resources Menu -->Recovery Scenario Resources Menu -->Recovery Scenario Manager -->New -->Next -->Select Manager -->New -->Next -->Select “Popup Window” as Trigger event --“Popup Window” as Trigger event -->Next -->Click on Hand Icon -->Show >Next -->Click on Hand Icon -->Show unwanted window with Hand icon --unwanted window with Hand icon -->Next -->Next -->(Continue below >Next -->Next -->(Continue below mentioned steps)mentioned steps)

Page 10: Qtp day 5

Recovery scenarioRecovery scenario

Recovery Operations steps:Recovery Operations steps:Select function call as Recovery Select function call as Recovery Operation -->Next {Open Notepad --Operation -->Next {Open Notepad -->Save empty file with .vbs extension} >Save empty file with .vbs extension} -->Browse the .vbs fie path -->Next ---->Browse the .vbs fie path -->Next -->Uncheck Add another Recovery >Uncheck Add another Recovery Operation -->Next -->(Continue below Operation -->Next -->(Continue below mentioned steps)mentioned steps)

Page 11: Qtp day 5

Recovery scenarioRecovery scenarioPost-Recovery Test Run Option Steps:Post-Recovery Test Run Option Steps:Select Post-Recovery Test Run Option Select Post-Recovery Test Run Option {Repeat current step and continue, {Repeat current step and continue, Proceed to Next step, Proceed to Next Proceed to Next step, Proceed to Next Action, Proceed to next test iteration, Action, Proceed to next test iteration, Restart current test run, Stop the Test Restart current test run, Stop the Test Run} -->Next -->Enter Scenario Name Run} -->Next -->Enter Scenario Name -->Next -->Select Option --> Finish ---->Next -->Select Option --> Finish -->Save the scenario with “.qrs” -->Save the scenario with “.qrs” -->Record required Recovery Operation >Record required Recovery Operation {Click ok, Click Cancel} take the script {Click ok, Click Cancel} take the script into function -->Save the library file --into function -->Save the library file -->Click Run >Click Run

Page 12: Qtp day 5

Recovery scenarioRecovery scenario

2.Recovery Scenario for Object 2.Recovery Scenario for Object State:State:Steps to follow to check Property Steps to follow to check Property values of an object in the application values of an object in the application match specified values. User can match specified values. User can specify property values for each specify property values for each object in the hierarchy.object in the hierarchy.

Page 13: Qtp day 5

Recovery scenarioRecovery scenario

Trigger Event steps:Trigger Event steps:Resources Menu --> Recovery Resources Menu --> Recovery Scenario Manager --> New --> Next --Scenario Manager --> New --> Next --> Select “Object state Window” as > Select “Object state Window” as Trigger event --> Next --> Click on Trigger event --> Next --> Click on Hand Icon --> Show object with and Hand Icon --> Show object with and icon --> Next --> Next-->select icon --> Next --> Next-->select object property with value object property with value (enabled ,false)-->click next --> (enabled ,false)-->click next --> (Continue below mentioned steps)(Continue below mentioned steps)

Page 14: Qtp day 5

Recovery scenarioRecovery scenario

Recovery Operations steps:Recovery Operations steps:Select function call as Recovery Select function call as Recovery Operation --> Next {Open Notepad --Operation --> Next {Open Notepad --> Save empty file with .vbs > Save empty file with .vbs extension} --> Browse the .vbs fie extension} --> Browse the .vbs fie path --> Next --> Uncheck Add path --> Next --> Uncheck Add another Recovery Operation --> Next another Recovery Operation --> Next -->(Continue below mentioned steps) -->(Continue below mentioned steps)

Page 15: Qtp day 5

Recovery scenarioRecovery scenarioPost-Recovery Test Run Option Steps:Post-Recovery Test Run Option Steps:Select Post-Recovery Test Run Option Select Post-Recovery Test Run Option {Repeat current step and continue, {Repeat current step and continue, Proceed to Next step, Proceed to Next Proceed to Next step, Proceed to Next Action, Proceed to next test iteration, Action, Proceed to next test iteration, Restart current test run, Stop the Test Restart current test run, Stop the Test Run} --> Next--> Enter Scenario Name Run} --> Next--> Enter Scenario Name --> Next --> Select Option -->Finish --> --> Next --> Select Option -->Finish --> Save the scenario with “.qrs” --> Save the scenario with “.qrs” --> Record required Recovery Operation Record required Recovery Operation {Click ok, Click Cancel} take the script {Click ok, Click Cancel} take the script into function --> Save the library file --into function --> Save the library file --> Click Run > Click Run

Page 16: Qtp day 5

Recovery scenarioRecovery scenario3.Recovery Scenario for Test Run 3.Recovery Scenario for Test Run Error:Error:Steps to follow to check if test does Steps to follow to check if test does not run successfully then Test Run not run successfully then Test Run Error can be raised.Error can be raised.Trigger Event steps:Trigger Event steps:Resources Menu -->Recovery Scenario Resources Menu -->Recovery Scenario Manager -->New -->Next -->Select Manager -->New -->Next -->Select “Testrunerror Window” as Trigger event “Testrunerror Window” as Trigger event -->Next -->select any error o -->Next -->Next -->select any error o -->Next -->Next -->(Continue below mentioned -->Next -->(Continue below mentioned steps) steps)

Page 17: Qtp day 5

Recovery scenarioRecovery scenario

Recovery Operations steps:Recovery Operations steps:Select function call as Recovery Select function call as Recovery Operation -->Next {Open Notepad Operation -->Next {Open Notepad -->Save empty file with .vbs -->Save empty file with .vbs extension} -->Browse the .vbs fie extension} -->Browse the .vbs fie path -->Next -->Uncheck Add path -->Next -->Uncheck Add another Recovery Operation --another Recovery Operation -->Next -->(Continue below >Next -->(Continue below mentioned steps) mentioned steps)

Page 18: Qtp day 5

Recovery scenarioRecovery scenarioPost-Recovery Test Run Option Steps:Post-Recovery Test Run Option Steps:Select Post-Recovery Test Run Option Select Post-Recovery Test Run Option {Repeat current step and continue, {Repeat current step and continue, Proceed to Next step, Proceed to Next Proceed to Next step, Proceed to Next Action, Proceed to next test iteration, Action, Proceed to next test iteration, Restart current test run, Stop the Test Restart current test run, Stop the Test Run} -->Next >Enter Scenario Name Run} -->Next >Enter Scenario Name >Next -->Select Option --> Finish >Next -->Select Option --> Finish >Save the scenario with “.qrs” -->Save the scenario with “.qrs” -->Record required Recovery Operation >Record required Recovery Operation {Click ok, Click Cancel} take the script {Click ok, Click Cancel} take the script into function -->Save the library file --into function -->Save the library file -->Click Run >Click Run

Page 19: Qtp day 5

Recovery scenarioRecovery scenario4.Recovery Scenario for 4.Recovery Scenario for Application Crash:Application Crash:Steps to follow to check application Steps to follow to check application failure during Test Run.failure during Test Run.Trigger Event steps:Trigger Event steps:Resources Menu --> Recovery Resources Menu --> Recovery Scenario Manager--> Click New--> Scenario Manager--> Click New--> Click Next -->Select Application Crash Click Next -->Select Application Crash as Trigger event-->Next -->Select as Trigger event-->Next -->Select selected executable application--selected executable application-->Next --> (Continue below mentioned >Next --> (Continue below mentioned steps)steps)

Page 20: Qtp day 5

Recovery scenarioRecovery scenario

Recovery Operations and Post-Recovery Operations and Post-Recovery Test Run Option Steps:Recovery Test Run Option Steps:Select Recovery Operation {Keyboard, Select Recovery Operation {Keyboard, Mouse Operation,Close Application Mouse Operation,Close Application Process, function Call, Restart, Process, function Call, Restart, Microsoft Windows} -->Next -->If you Microsoft Windows} -->Next -->If you want to check Add another operation want to check Add another operation else uncheck-->Next -->Next -->Enter else uncheck-->Next -->Next -->Enter Scenario Name -->Next-->Select Scenario Name -->Next-->Select Option -->Finish -->Close -->Save the Option -->Finish -->Close -->Save the scenario with “.qrs” scenario with “.qrs”

Page 21: Qtp day 5

Recovery scenarioRecovery scenario

A recovery scenario can handle on A recovery scenario can handle on these situations.these situations.On error StatementsOn error StatementsFollowing are error statements :Following are error statements :1. On Error Resume Next1. On Error Resume Next2. On Error Go to 02. On Error Go to 03. err.number3. err.number4. err.description4. err.description

Page 22: Qtp day 5

Recovery scenarioRecovery scenario

On Error Resume Next:On Error Resume Next:On Error Resume Next statement On Error Resume Next statement enables the Error handling in the enables the Error handling in the code.If there is error in the code code.If there is error in the code "On error Resume Next" ignores it "On error Resume Next" ignores it and continue with next line of and continue with next line of code. code.

Page 23: Qtp day 5

Recovery scenarioRecovery scenario

On Error Go to 0:On Error Go to 0:On error got to 0 statement On error got to 0 statement disables error handling we have disables error handling we have previiously enabled it by using On previiously enabled it by using On Error resume Next.Error resume Next.err.number and err.description:err.number and err.description:Provides the error number and the Provides the error number and the description of the errordescription of the error

Page 24: Qtp day 5

Recovery scenarioRecovery scenarioAdvance QTP Script to attach and enable Advance QTP Script to attach and enable recovery scenario manager file to qtp test recovery scenario manager file to qtp test during runtimeduring runtime: : Dim qtAppDim qtAppSet qtApp = Set qtApp = CreateObject("QuickTest.Application")CreateObject("QuickTest.Application")qtApp.Test.Settings.Recovery.Enabled = TrueqtApp.Test.Settings.Recovery.Enabled = TrueqtApp.Test.Settings.Recovery.SetActivationModqtApp.Test.Settings.Recovery.SetActivationMode "OnError"e "OnError"qtApp.Test.Settings.Recovery.Add "C:\qtp\qtApp.Test.Settings.Recovery.Add "C:\qtp\recovery.qrs", "Recovery", 1recovery.qrs", "Recovery", 1qtApp.Test.Settings.Recovery.Item(1).Enabled = qtApp.Test.Settings.Recovery.Item(1).Enabled = TrueTrue‘Above statement will enable recovery file for ‘Above statement will enable recovery file for specific test. specific test.

Page 25: Qtp day 5

Recovery scenarioRecovery scenario

So using above advance qtp So using above advance qtp script we can attach and enable script we can attach and enable existing recovery scenario existing recovery scenario manager file to qtp test during manager file to qtp test during runtime. runtime.

Page 26: Qtp day 5

Recovery scenarioRecovery scenario

Using Recovery Scenarios you Using Recovery Scenarios you can instruct QTP to recover from can instruct QTP to recover from unexpected eventsunexpected events and errors that  and errors that occur in your testing environment occur in your testing environment during a run session.during a run session.Recovery scenario become Recovery scenario become crucial crucial for large tests, which run for large tests, which run unattendedunattended and are paused until  and are paused until recovery operation, is performed recovery operation, is performed increasing the test execution time.increasing the test execution time.

Page 27: Qtp day 5

Recovery scenarioRecovery scenarioThere are There are 6 steps6 steps involved in  involved in creating a recovery scenariocreating a recovery scenario1) In QTP , Select Resources > 1) In QTP , Select Resources > Recovery Scenario Manager .Create Recovery Scenario Manager .Create new Scenarionew Scenario2) Specify the Trigger Event.  A 2) Specify the Trigger Event.  A Trigger Event is an event that Trigger Event is an event that interrupts your run sessioninterrupts your run session3) Specify the  Recovery Operation 3) Specify the  Recovery Operation which is the corrective action you which is the corrective action you take when trigger happenstake when trigger happens

Page 28: Qtp day 5

Recovery scenarioRecovery scenario

4) Specify Post-recovery test run 4) Specify Post-recovery test run options which specify how to options which specify how to continue the run session after Quick continue the run session after Quick Test  Professional has identified the Test  Professional has identified the event and performed all of the event and performed all of the specified recovery operations.specified recovery operations.5)  Check and verify Summary  of the 5)  Check and verify Summary  of the scenario you created.scenario you created.6) Add Recovery Scenario to your 6) Add Recovery Scenario to your test using  File > Settings > test using  File > Settings > Recovery.Recovery.

Page 29: Qtp day 5

Optional stepsOptional steps

An An optional stepoptional step is a step that  is a step that is is not necessarily required to not necessarily required to successfully complete a run successfully complete a run session.session.During a run session, During a run session, ifif the object of  the object of an an optional step does not existoptional step does not exist in  in the application the application QTP  bypasses this QTP  bypasses this step and continues to run the step and continues to run the test.test.

Page 30: Qtp day 5

Optional stepsOptional steps

To set a step as optional in To set a step as optional in keyword view right click on the keyword view right click on the step and select Optional Stepstep and select Optional StepAlternatively, you can directly Alternatively, you can directly write the keyword "OptionalStep" write the keyword "OptionalStep" preceding a statement to make it preceding a statement to make it optional.optional.

Page 31: Qtp day 5

Framework ApproachFramework Approach

What is Test Automation Framework? Suppose you are given a task where you have to automate some test cases for an application. When you are finished automating the application, what would be your expectations from the scripts you have created?

Page 32: Qtp day 5

Framework ApproachFramework Approach

The scripts should run as intended without any issues. The code and the flows should be easy to understand. The scripts should be easy to maintain in case of any changes. All the above points can be achieved by using a proper Automation Framework.

Page 33: Qtp day 5

Framework ApproachFramework Approach

An Automation Framework is a set of guidelines that you can follow during test case scripting to achieve the above mentioned results. It may be related with these aspects.Specifying the folder structure that will be used for storing test cases, function libraries, object repositories and data sheets.

Page 34: Qtp day 5

Framework ApproachFramework Approach

Deciding the format of the data sheets i.e., how the data sheets would be grouped and how the scripts will access these data sheets. Following proper coding standards and using comments so that the code can be understood easily by anyone. Using reusable functions wherever possible so that lesser amount of rework is needed in case of any changes.

Page 35: Qtp day 5

Framework ApproachFramework Approach

Modular Framework in QTP..Modular Framework is the approach where all the test cases are first analyzed to find out the reusable flows. Then while scripting, all these reusable flows are created as functions and stored in external files and called in the test scripts wherever required.

Page 36: Qtp day 5

Framework ApproachFramework Approach

Advantages of Modular Framework..Test Scripts can be created in relatively less time as the reusable functions need to be created only once. Effort required to create test cases is also lesser due to code reuse. If there are any changes in the reusable functions, the changes need to be done in only a single place. Hence script maintenance is easier.

Page 37: Qtp day 5

Framework ApproachFramework Approach

Disadvantages of Modular Framework. Since data is still hardcoded in the script, the same test case cannot be run for multiple data values without changing data after each run. Additional time is spent in analyzing the test cases to identify with reusable flows. Good programming knowledge is required to create and maintain function libraries.

Page 38: Qtp day 5

Framework ApproachFramework Approach

Data Driven Framework in QTP..In Data Driven Framework, the data is NOT hard-coded in the test scripts. Instead, it is stored in some external files. The test script first connects to the external data source and then extracts the data from that source. Most of the times, excel sheets are used to store the data. Other external data sources that are frequently used are – Text files, XML files, Databases, Combination of more than one external file.

Page 39: Qtp day 5

Framework ApproachFramework Approach

Advantages of Data Driven Framework..Since the data is kept separate from the test script, the same script can be run multiple times for different sets of data (which can be kept in multiple rows in the data sheet). Changes made in the test data don’t affect the test scripts in any way and vice versa.

Page 40: Qtp day 5

Framework ApproachFramework Approach

Disadvantages of Data Driven Framework..Additional effort and good technical expertise is required to create functions that connect to the external data sources to retrieve the data. Additional amount of time is required in identifying which external data source to use and deciding how the data should be stored or grouped in that external data source.

Page 41: Qtp day 5

Framework ApproachFramework Approach

Keyword Driven Framework in QTP..In Keyword Driven framework, you can create various keywords and associate a different action or function with each of these keywords. Then you create a Function Library that contains the logic to read the keywords and call the associated action.

Page 42: Qtp day 5

Framework ApproachFramework Approach

Advantages of Keyword Driven Framework..The keyword and function libraries are completely generic and thus can be reused easily for different applications. All the complexity is added in the function libraries. Once the libraries are ready, it becomes very easy to write the actual test script steps in excel sheets.

Page 43: Qtp day 5

Framework ApproachFramework ApproachDisadvantages of Keyword Driven Framework..Lot of time and effort needs to be spent initially to create the function libraries. The benefits of the keyword driven framework are realized only after it has been used for longer periods of time. Very high programming skills are needed to create the complex keyword library functions. It’s not easy for new people to understand the framework quickly.

Page 44: Qtp day 5

Framework ApproachFramework Approach

Business Process Testing (BPT) Framework in QTP..Business Process Testing (BPT) Framework is the framework where you can divide the test cases into multiple flows and each of these flows is scripted by using a Business Process Component. When all the components for a particular test case are ready, you can link the components one after the other as per the test case flow and execute the BPT test case from QC.

Page 45: Qtp day 5

Framework ApproachFramework Approach

Advantages of BPT Framework..BPT Framework allows non-technical subject matter experts to quickly create test cases using the business process components. A lot of features such as component linking & data parameterization come built in with the BPT Framework. Because of this you do not need to spend extra effort to write code for these functionalities.

Page 46: Qtp day 5

Framework ApproachFramework Approach

Disadvantages of BPT Framework..BPT Framework can be used only if you have QC access.You would need to purchase additional license for BPT Framework if you want to use this for your test scripts.

Page 47: Qtp day 5

Framework ApproachFramework Approach

Hybrid Framework in QTP..Hybrid Framework is a framework that is created by combining different features of any of the frameworks mentioned above. Based upon your requirements, you can combine the features of any of the above frameworks to come up with your own version of Hybrid Framework. There are many different ways to create a Hybrid Framework.

Page 48: Qtp day 5

Framework ApproachFramework Approach

Advantages of Hybrid Framework..The main advantage of this approach is that you can use the best features from all the types of frameworks to create your own.

Page 49: Qtp day 5

Framework ApproachFramework Approach

Disadvantages of Hybrid Framework..The framework is highly complex and needs very good programming expertise and experience to build a Hybrid Framework from scratch.

Page 50: Qtp day 5

Working with Dynamic Working with Dynamic ObjectsObjects

Every now and then an object we are Every now and then an object we are working with is changing during test working with is changing during test run, or its properties are set run, or its properties are set dynamically at runtime by input dynamically at runtime by input parameters. The outcome of such an parameters. The outcome of such an object is the inability of adding this object is the inability of adding this object to the Object Repository.object to the Object Repository.The solution is dynamic objects, i.e. The solution is dynamic objects, i.e. objects which are defined during run objects which are defined during run time. time.

Page 51: Qtp day 5

Working with Dynamic Working with Dynamic ObjectsObjects

There are several ways to work with There are several ways to work with dynamically generated object:dynamically generated object:

Using Regular Expression.Using Regular Expression.

Using alternative object property to Using alternative object property to uniquely identify the dynamic uniquely identify the dynamic object.object.

Descriptive programming.Descriptive programming.

Page 52: Qtp day 5

Working with Dynamic Working with Dynamic ObjectsObjects

Use regular expressionsUse regular expressions for the dynamic  for the dynamic property.property.

Open the Object Repository, and find the object Open the Object Repository, and find the object from the left side of the Object repository from the left side of the Object repository window.window.

From the list of the properties, select the dynamic From the list of the properties, select the dynamic property.property.

Click the edit icon, which is next to the Constant Click the edit icon, which is next to the Constant edit field.edit field.

Check the ‘Regular expression’ checkbox.Check the ‘Regular expression’ checkbox.

Replace the dynamic portion of the string with wild Replace the dynamic portion of the string with wild cards (*) and Click “OK”.cards (*) and Click “OK”.

Page 53: Qtp day 5

Working with Dynamic Working with Dynamic ObjectsObjects

Modify the Object RepositoryModify the Object Repository for the  for the dynamic object to use different dynamic object to use different property to uniquely identify the property to uniquely identify the object:object:

Open Object repository, and select the Open Object repository, and select the dynamic object.dynamic object.

Click on the Add/Remove Button.Click on the Add/Remove Button.

Choose a different property to identify the Choose a different property to identify the object uniquely.object uniquely.

Page 54: Qtp day 5

Working with Dynamic Working with Dynamic ObjectsObjects

Multiple usages of a Dynamic Object:Multiple usages of a Dynamic Object:Set newObject = Description.CreateSet newObject = Description.CreatenewObject(“micclass”).Value = newObject(“micclass”).Value = “WebElement”“WebElement”newObject(“html tag”).Value = “SPAN”newObject(“html tag”).Value = “SPAN”newObject(“class”).Value = “radio-newObject(“class”).Value = “radio-classic-ITEM-OFF”classic-ITEM-OFF”newObject(“text”).Value = newObject(“text”).Value = Parameter(“Text”) Parameter(“Text”)

Page 55: Qtp day 5

Steps before starting Steps before starting Automation Frame WorkAutomation Frame Work

1. Give environment variable path (which is 1. Give environment variable path (which is mandatory) mandatory)

2. In the System2. In the System

My ComputerMy Computer Right Click Right Click Properties Properties AdvancedAdvanced Environment Variable Environment Variable Qpath: Qpath:

3. In QTP Tool3. In QTP Tool

FileFile Settings Settings Resources Resources [+] [+] Add Add Path(GenUtils.txt & LibraryUtils.txt)Path(GenUtils.txt & LibraryUtils.txt) Apply Apply OkOk

Page 56: Qtp day 5

THANK YOUTHANK YOU

For further informationFor further information

Contact:Contact:

[email protected]@in.com