QTP Tutorial #18 – Data Driven and Hybrid Frameworks Explained with QTP Examples

By Vijay

By Vijay

I'm Vijay, and I've been working on this blog for the past 20+ years! I’ve been in the IT industry for more than 20 years now. I completed my graduation in B.E. Computer Science from a reputed Pune university and then started my career in…

Learn about our editorial policies.
Updated November 3, 2024

We are working our way through figuring out how to derive an Automation Framework that works best for a certain testing project and also defining certain frameworks that already exist.

The example that we were using in the previous QTP framework article was creating a new Gmail account.

To start with, we coded the creating a new account scenario just by record and playback in a linear fashion. Seeing how much it lacked in modularity, readability, and reusability, we broke it down into functions that would be referenced as keywords moving forward.

=> Click Here For The QTP Training Tutorials Series

Data Driven and Hybrid Frameworks

We did achieve modularity, readability, and reusability through this method but we needed to make the program even more robust so that it can take different sets of values without having to modify the script itself.

That is exactly what we are going to achieve by data driving the tests.

Data-Driven Automation Framework Using QTP

Creating multiple Google user accounts is a task that we will try to accomplish using this framework.

In the earlier example, we hardcoded the first name, last name, user id details, etc. into our code while trying to create an account. We will have to separate the code from the data if we have to achieve the data driving aspect for this script.

The data should come from a source that is not the program itself.

Typically the Data input can be anything:

  • MS Excel files
  • Database
  • Text files
  • XML files….etc.

Excel files are the ones that get used most often. The very fact that each action in QTP comes integrated with a datasheet of its own explains why that’s so.

You can use one or more data sources for a single script. The excel sheet that comes with the action can be used or you can use an external excel sheet too. Basically, a data sheet can be any relevant external file.

For Example,

Here is the code that we need to data drive:

Browser("Gmail: Email from Google").Page("GoogleAccounts").WebEdit("FirstName").Set "swati"
Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("LastName").Set "s"
Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("GmailAddress").Set "test"

All the data right now is hardcoded. Let us now see how we can take these values from the datasheet.

Go to the expert view for the statement in QTP and click on the value column for a step.

The following window opens up:

Data driven framework

Select the parameter option, choose a name for the parameter (this will be the column name in the datasheet), and choose whether you are going to use the global sheet or local sheet (global sheet is available for all the actions in a test, but the local sheet is specific to the current action).

For the “Name” field on the screen, QTP provides a default value. The user has the option to keep it the same or change it.

Data driven framework

Upon clicking OK, a new column gets created in the data table.

Data driven framework

This is how the datasheet that contains 3 sets of the first name, last name, and account id looks like:

Data driven framework

Once parameterized, the code looks as shown below:

Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("FirstName").Set DataTable("G_First_Name", dtGlobalSheet)
Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("LastName").Set DataTable("G_Last_Name", dtGlobalSheet)
Browser("Gmail: Email from Google").Page("Google Accounts").WebEdit("GmailAddress").Set DataTable("gmail_address", dtGlobalSheet)

If we have to create these 3 user IDs with the data in the sheet, we need to have 3 iterations. Iteration is nothing but a test run.

Once the data is set up, we will have to instruct QTP on how many times this code needs to run, or how many iterations.

Here’s how we do it: Go to File -> Settings and Run

Data driven framework

In the above screen, set the iteration properties as required.

Alternately, you can instruct QTP about the iterations programmatically. As always, this allows more control as well as programming skills. So it is really up to the comfort level of the tester to choose either of these methods.

The components of the data-driven framework are:

  1. Test script
  2. Data files
  3. Shared Functional library (if it exists or could be a linear program).
  4. Object repository (Again, this component will not exist if descriptive programming was used to create objects).

The test results will show a “Passed’ or ‘Failed’ status for each test run.

Apart from the data table that comes by default, we can use any external excel file as an input sheet.

Hybrid Framework

In the above example, you used keywords (names of the functions that the user has created) and have data-driven the test to make sure that different users are created at the same time. This is nothing but a hybrid framework.

The combination of any two or more frameworks that we have discussed so far is a hybrid framework. In my experience, no framework works effectively for a certain project. The hybrid framework is what gets used most often.

Few important points about frameworks:

  • The framework is just a solution that worked best in a certain situation but should not be construed as a set of rules to be definitely followed. It should be seen more like guidelines.
  • There might be many other frameworks in use, we have only listed and explained the common ones.
  • Nomenclature – Different people address their frameworks with different names. So if the names are slightly different from one application to another, then it is normal.
  • Most frameworks can be used in conjunction with one another when any one of them cannot provide an all-around solution to your testing goals.

Conclusion

For the sake of easy understanding, we have really simplified the concepts of the framework here.

If you have any framework-related issues that you are facing, but are not covered in these articles, then do let us know. We will most definitely try to answer your questions. Feel free to post your questions.

=> Visit Here For The QTP Training Tutorials Series

Was this helpful?

Thanks for your feedback!

Recommended Reading

  • Test Automation Frameworks

    => Click Here For The QTP Training Tutorials Series What is Test Automation Framework and what is QTP Framework? In the context of a successful implementation of QTP for a software testing project we often come across the concept of frameworks. The framework is nothing but an approach that we consistently follow…

  • what is Data driven testing

    In this tutorial, we will discuss Data Driven Testing in an extensive manner.  We include what it is, how it works, pros & cons, etc. Let's get started.  Often, there are a number of data sets that we have to run the same tests on. Also, creating a different test…

  • Data Driven Framework in Selenium using Apache POI

    How to work on Data Driven Framework in Selenium Using Apache POI? Data Driven Framework is one of the most popular Automation Testing Frameworks in the current market. Data Driven automated testing is a method in which the test data set is created in the excel sheet, and is then…

  • PARAMETERIZED TESTING

    Explore the Ways of Writing Data-driven or Parameterized Tests with the Spock Framework: In this Free Spock Training Tutorial Series, we explored all about Unit Testing in Spock and Test fixtures, Assertions and Reporting in our previous tutorial. In this tutorial, we will try to understand what parameterized tests are…

  • DataDriven Testing

    Data Driven Testing using TestComplete (Part-II): TestComplete is a UI as well as a functional automation tool. In our first article, we have created simple Desktop and Web projects, recorded our test, played back and observed the results through Visual Analyzer. We have extended this functionality to both Desktop and Web-based…

  • Parameterization in QTP

    What is QTP Parameterization? Sometimes the application does not accept duplicate data records. In this case, if you run the same Test script with a fixed set of input data, an application may throw an error due to data duplication. To avoid this issue, QTP provides ways to accept different…

  • What is Data Mining

    This In-depth Data Mining Tutorial Explains What Is Data Mining, Including Processes And Techniques Used For Data Analysis: Let us understand the meaning of the term mining by taking the example of mining of gold from rocks, which is called gold mining. Here the useful thing is “Gold”, hence it…

  • Data Mart in ETL

    This Tutorial Explains Data Mart Concepts Including Data Mart Implementation, Types, Structure as Well as Differences Between Data Warehouse Vs Data Mart: In this Complete Data Warehouse Training Series, we had a look at the various Data Warehouse Schemas in detail. This tutorial will help you to learn Data Mart…


23 thoughts on “QTP Tutorial #18 – Data Driven and Hybrid Frameworks Explained with QTP Examples”

  1. Hi Swati

    I have one question, in QTP after executing the script will it be the final script because again in QC we execute the same script from Test Lab. Why we should execute 2 times from QTP and QC. And from QTP directly we can add the defect after executing the script?
    Thanks

    Reply
  2. Hi sir I need a answer for did you checkpoints, recovery scenario, environment variable in ur project
    With example. Can you tell me how to explain .
    I know all the concept but I don’t how to explain like related with my project

    Reply
  3. Hello,

    Can you let me know if multiple iterations of a particular piece of script is possible with keyword driven framework or not? Like for example, providing mulitple inputs to the flight details in the sample application provided by qtp? how will we achieve this through the keywords?

    Regards,
    Pankaj

    Reply
  4. What is the difference between Keyword driven and Modular framework?
    From the above discussion it seems modular is explained as Keyword driven. I am confused, please help!!

    Reply
  5. @Swati @Vijay

    I have a similar question but I do not find the code for it, how to implement fetching of data from the external source(not the data table in QTP) and to use each set of data in that external data source(for e.g., Spreadsheet) in a loop for iteration…Can you put a explanation of the process and also the code to implement it

    Reply
  6. Good work, Vijay and Swati… This is a comprehensive series of QTP tutorials which is really helpful for newbies…

    Cheers!

    Reply
  7. Good Explanation. So far i had done what this article showing. But idk what i had done with my code is on of framework concept 😀 Thanks for sharing

    Reply
  8. 1. Please post difficult automation framework interview questions.
    2. Some real time examples of three tier application and the kind of framework to be used with folder structure also.
    Thanks..

    Reply

Leave a Comment