Pages

Monday, July 1

Descriptive Programming in QTP - Part 1

Hello Friends,
In this series of post, we'll learn in detail how to use Descriptive programming (DP) in QTP.

Before starting DP, let's understand the basics about object identification. There are two ways, QTP uses to recognize the objects present in your application.

1. Object Repository (OR)
2. Descriptive Programming (DP)


What is Object Repository (OR)?

OR is the simple and default way of object identification in QTP. Object Repository is a storage place of QTP, where  properties and values of every object are stored. While you record on application, all the objects you click/interact, are stored in Object Repository.

During the play back QTP use this OR to identify the object on which the action is to be performed.


What is Descriptive programming (DP)?

We'll use DP when we want to bypass OR. Descriptive programming is used when we want to perform an operation on an object that is not stored in the object repository. This way QTP won’t search for the object properties in the Object Repository, but will take it from the DP statement.

Why use Descriptive programming (DP)?

Everything looks fine while automating test using OR, then why should I use DP?


Well, there might be many valid reason to do so. Think about a situation - you want to close all opened browser automatically before you start executing your script. Here OR will not help you to identify an object as it is not possible to store all the opened browser objects into OR. Make sense?



I am not very good in vbscript. Is it mandatory to learn vbscript explicitly to write DP?

No. Not at all! Its not mandatory, but yeah.. recommended. For basic operations and starting with DP, this post will guide you.
Although, for advanced operations i.e. using COM, AOM, complex frameworks etc. vbscript knowledge is the key.

Okie guys! Now, let's start writing DP!

Types of Descriptive Programming (DP):

DP can be written in two ways..

1. Static (by provide the set of properties and values directly)
2. Dynamic (by creating description object)


Static:

- In Static method of DP, we provide the set of properties and values directly in a single line, in form of the string arguments.

Here is the format/syntax of DP..
object's Class Name("property name:=property value")


Exmp 1: webbutton(“Name:=Google Search”)

object's Class Name = webbutton 
property name = Name
property value = Google Search


Exmp 2:- Browser(“google”).page(“google”).webbutton(“name:=Google Search”,”type:= Submit”).click

In above statement, Browser(“google”) and page(“google”) are written using OR. And webbutton(“name:=Google Search”,”type:= Submit”) is written using DP. 


Please note that we can write multiple set of properties and values in any DP statement.

Examples:
webbutton(“name:=Google Search”).click
webbutton(“name:=Google Search”,”type:= Submit”).click
webbutton(“name:=Google Search”,”type:= Submit”,"x:=301").click


TIP: A statement can be written by combining OR and DP approach, but OR can be used only before DP. once you use DP, you can't write OR after it.

Correct: Browser(“google”).page(“google”).webbutton(“name:=Google Search”,”type:= Submit”).click


Above statement is correct because DP(webbutton(“name:=Google Search”,”type:= Submit”)) is written only after OR(Browser(“google”).page(“google”)).

Incorrect: Browser(“name:=google”).page(“title:=google”).webbutton("Google Search").click


Above statement is incorrect because DP (Browser(“name:=google”)) is used before OR.




We can get the all properties and values of object using Object Spy.



Okie!! Let me add one more point here. You can use variable also in Descriptive Programming (DP)!! Here we go...

Dim var_name
var_name = "Google Search" 
webbutton(“name:=” & var_name).click

Key Points:

  • Object Repository (OR) and Descriptive Programming (DP) are two ways, QTP uses to recognize the objects.
  • These two ways are also known as Object Identification techniques.
  • Descriptive Programming (DP) can be done in two ways - Static and Dynamic.
  • A statement can be a combination of both OR and DP approach
  • OR approach can be used only before DP. once you use DP in a statement, you can't write OR after it.
  • Properties and values of object for DP are captured using Object Spy.
  • Variable also can be used for property values in DP.


In next part of post, we'll discuss another type of DP - Dynamic.

In case of any queries, please post your comments.

23 comments:

  1. This section was really useful.

    ReplyDelete
  2. @Anonymous

    Thanks. Keep reading the good stuff!

    ReplyDelete
  3. Very Nice brief article about OR and DP.I wish you had provide some examples on DP's description object too...

    Regards
    Pankaj

    ReplyDelete
  4. @Pankaj

    plz check all parts of the post and if still you have any question, plz let me know :)

    Descriptive Programming - Part 1
    Descriptive Programming - Part 2
    Descriptive Programming - Part 3
    Descriptive Programming - Part 4

    ReplyDelete
  5. Hi AbhiKansh Jain,can u give examlpes for Webtables in QTP

    ReplyDelete
  6. Which is best way to write script.ether DP or in OR?

    ReplyDelete
  7. generally mixed approach is most fruitful...

    ReplyDelete
  8. Hello Abhikansh,

    You are doing a great job... Keep doing...!!

    ReplyDelete
  9. The reason why I choose DP is because I am so fed up with OR and doing 'existing call'.

    I dont dont understand after the "page" part, the number just keep on increasing.

    Ex.: Browser(“google”).page(“google_2”).

    That is why I choose DP. But how far can I go with DP?

    ReplyDelete
  10. Hi Abhishek,

    I have one question here......

    Can you please let me know that how to recognize menu options in descriptive programming in qtp.

    Can you please let me know how to write DP for below mentioned example i.e.

    Window("Flight Reservation").WinMenu("Menu").Select "File;New Order"
    Window("Flight Reservation").WinMenu("Menu").Select "Analysis;Reports..."

    ReplyDelete
  11. Replies
    1. this is ramanjaneyulu from hyd i know the qtp and manual and db but how to prepare the resumes, how to attended the intertives if don't main pls help me this is my mail id ramanjaneyulu08@gmail.com

      Delete
  12. hi,

    Can u tell any ecommerce project so that i can practice....

    ReplyDelete
    Replies
    1. this is ramanjaneyulu from hyd i know the qtp and manual and db but how to prepare the resumes, how to attended the intertives if don't main pls help me this is my mail id ramanjaneyulu08@gmail.com

      Delete
  13. @ramanjaneyulu

    Regarding resume, i'll say..

    - Write only what you know
    - whatever you write, you must know :)

    ReplyDelete
  14. Abhi,

    Great Post, I have been using QTP for over 6 years but havent seen such a brief intro for OR and DP.

    Thanks keep writing.

    ReplyDelete
  15. Excellent Post. Also visit http://whiteboxqa.com/selenium.php#qtp.php

    ReplyDelete
  16. Excellent Post. Also visit http://www.whiteboxqa.com/#qtp.php

    ReplyDelete
  17. That was awesome tutorial. Thanks again.

    ReplyDelete