Wednesday, February 11, 2015

UFT 11.5 video from HP

About HP UFT 11.5 and it's features, watch the excellent video 


For more information visit: http://www.hp.com/go/uft - HP Unified Functional Testing (UFT) 11.5 product movie, the new generation of functional testing by HP.

For more information on HP UFT 11.5 new functions and features, please do refer the HP Webinar Slides by clicking. 

Thursday, July 31, 2014

Check if web Page has horizontal and vertical Scrollbars

The following code will be able to tell if the web page has a horizontal or vertical scrollbars. And function GetScrollbarState accepts two arguments:
1. The  document (i.e., Browser(“MyBrowser”).Page(“MyPage”).Object)
2. The direction of the scrollbar – “h” for horizontal or “v”” for vertical. 
This function will returns true or false if there is a scrollbar in the given direction

Function GetScrollBarState(ByRef document, ByVal scrollbarDir)
    Dim result
    Dim root    
    OnErrorResumeNext
    SelectCase LCase(document.compatMode)
        Case"backcompat"
            Set root = document.body
        CaseElse
            Set root = document.documentElement
    EndSelect
    
    SelectCase LCase(scrollbarDir)
        Case"h"
            scrollbarDir = "horizontal"
            result = (root.scrollWidth > root.clientWidth)
        Case"v"
            scrollbarDir = "vertical"
            result = (root.scrollHeight > root.clientHeight)
    EndSelect    
    
    If Err.Number <> 0 Then
        Reporter.ReportEvent micWarning, "GetScrollBarState", "Could not get state for " & scrollbarDir & " scrollbar"
        result = "Undefined"
        Err.Clear
    EndIf
    GetScrollBarState = result
EndFunction
 
 
The following two functions will be used as Page properties using QTP/UFT RegisterUserFunc:
 
Function HasHorizontalScrollbar(ByRef oPage)
    HasHorizontalScrollbar = GetScrollBarState(oPage.Object, "h")
EndFunction
 
Function HasVerticalScrollbar(ByRef oPage)    
    HasVerticalScrollbar = GetScrollBarState(oPage.Object, "v")
EndFunction
 
RegisterUserFunc "Page", "HasHorizontalScrollbar", "HasHorizontalScrollbar"
RegisterUserFunc "Page", "HasVerticalScrollbar", "HasVerticalScrollbar"
 
'Usage with QTP/VBScript Code
Set oPage = Browser("Browser").Page("Page") 
Print oPage.HasHorizontalScrollbar
Print oPage.HasVerticalScrollbar

**** Special thanks to Meir Bar-Tal for such a great function which made our work easy *****

Tuesday, February 18, 2014

how to Download HP Quality Center 11.50

Download the latest version of QC 11.50 evaluation version from the hp site below.

Download Quality Center 11.50

Steps to Download:
1.   Open the above link
2.   Click on the "Try Quality Center Enterprise Now" button

3.   Click on Next button

4.   Fill the information about your self to valid information and send the conformation email to your email id.
Note: licence information also sent to this email id

5.   Click on I agree button to accept the terms of use

6.   Now you will be able to see list of download links

7.   Download this Software, HP QC/ALM11.50 Windows English (T7333-15018.ISO)
8.   Make sure your download file is not corrupted before installation
9.   Extract the ISO file using the software’s available in your system
10. You have the setup to install the Quality Center 11.50 trail version

Let me know by comments, if you want more information on the HP QC 11.50 installation or struck with download.

What's New in the HP Functional Testing 11.5 Suite

What's New in the HP Functional Testing 11.5 Suite

HP Unified Functional Testing(UFT) = HP QuickTest Pro(HPQTP) + HP Service Test(HPST)
Quick Test Professional (QTP) is functional automation testing tool and Service Test (ST) will available in single package to serve the Automation testing needs prominently.
HP UFT 11.5 features are defined by its advanced accessibility of the tools which incorporated in the hp uft 11.5 interface

Click here to view the Presentation from HP.

Monday, February 17, 2014

How to download HP QTP 11.5/ HPUFT 11.5?

What is HP UFT and how it is different from the traditional QTP?

HP Unified Functional Testing (HP UFT) tool is previously known as Quick Test Professional (QTP) and HP Quick Test Professional (HPQTP), it’s combination of HP Quick Test Professional and HP Service Test into a single software package.
HP released the latest version of QTP 11.5 (Unified Functional Testing – UFT 11.5) and Now question is
how to download HP UFT/QTP 11.5 from HP site!!! we can download and use this tool for evaluation or licensed purpose.

Steps to Download:
1. Step by Step process to download QTP/UFT 11.5
2. Click here to download HP QTP/UFT 11.50
3. Click on “Trials and Demos” down arrow 
4. Select “HP Unified Functional Testing 11.50 CC English SW E-Media Evaluation“ and click 


5. Enter your personal details and click Next button.

6. Click on Agree button to accept Software Terms of Use.

7. Select “Using Standard Download” from the drop down.
8. Now Click on “Download” links to download the QTP/UFT 11.5 Software and PDF letter from HP.

9. As the software download file is approximately 1.7 GB and it may take more than ***2 hours’ time depends up on your internet correction speed
10.  Make sure your download is not corrupted before installation
11.    Once zip “Software_HP_UFT_11.50_English_T6510-15080” file Downloaded then extract using the unzipping software’s available in your system
12.    Now you are ready to install the HP Unified Functional Testing or Quick Test Professional 11.5 tool.

Saturday, July 6, 2013

What's New in the HP Functional Testing 11.5 Suite

What's New in the HP Functional Testing 11.5 Suite

HP Unified Functional Testing(UFT) = HP QuickTest Pro(HPQTP) + HP Service Test(HPST)
Quick Test Professional (QTP) is functional automation testing tool and Service Test (ST) will available in single package to serve the Automation testing needs prominently.
HP UFT 11.5 features are defined by its advanced accessibility of the tools which incorporated in the hp uft 11.5 interface

Click here to view the Presentation from HP.

Thursday, November 10, 2011

How to use the FireEvent method when a click does not work

Overview: While using QTP’s click method on a search WebElement earlier today, I had an issue with a WebTable’s populate event not being triggered as it should have. If you ever experience a similar problem with your application (not performing an expected action after a certain event occurs), don’t give up – and be sure to try the FireEvent method. Description: The FireEvent method is designed to trigger events in an application. Syntax: The Syntax for the FireEvent is: yourObject.FireEvent EventName,[x-optional],[y-optional],[BUTTON-optional] Valid Events: The events available when using the FireEvents method are:
  • onchange
  • onclick
  • ondblclick
  • onblur
  • onfocus
  • onmousedown
  • onmouseup
  • onmouseover
  • onmouseout
  • onsubmit
  • onreset
  • onpropertychange
The click method below was not working: 
Set mainPath = browser("CB").Page("CB")mainPath.WebElement("Search").Click 
but using the FireEvent did work: 
mainPath.WebElement("Search").FireEvent "ondblclick"

What is DOM? and How to use DOM properties in QTP?

What is DOM?

The Document Object Model (DOM) is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM (such as its "Elements") may be addressed and manipulated within the syntax of the programming language in use. The public interface of a DOM is specified in its application programming interface (API).

how the browser display's objects in the browser
  DOM
   |-> Window
       |-> Document
             |-> Anchor
             |-> Link
             |-> Form
                  |-> Text-box
                  |-> Text Area
                  |-> Radio Button
                  |-> Check Box
                  |-> Select
                  |-> Button


QTP will be able to access to Internet Explorer Document Object Model (DOM) through which we will be able to access the HTML tags directly. Access to the DOM is performed using the .Object notation.

below function explains how to iterate all the tags in an Internet Explorer page. The function then outputs the inner-text of the tags (the text contained between the tags) to the Test Results using the Reporter object.

' we are using On Error Resume Next option because all the page elements might not have inner-text. 
 On Error Resume Next 
 Set Doc = Browser("CNN Interactive").Page("CNN Interactive").Object 
 ' Loop through all the objects in the page. 
 For Each Element In Doc.all 
 TagName = Element.TagName ' Get the tag name. 
 InnerText = Element.innerText ' Get the inner text. 
 ' Write the information to the test results. 
 Reporter.ReportEvent 0, TagName, InnerText

QTP 11 Now Supports Google Chrome

Wow what a great news now QTP 11  Supports GOOGLE Chrome !!!!!!!!!!!!!!!!!


HP Patch QTPWEB_00088 features and limitations

HP just released a new patch QTPWEB_00088 that contains the following features and limitations:

QTP does not support recording steps in Google Chrome

Certain Google Chrome Javascript functionality, like web pages that use JSON objects, may cause unexpected behavior in QTP.
If you manually uninstalling the QTP agent extension from Tools>Extensions, you must manually reinstall it if you reinstall this patch.
Browser methods will not be supported

Also the following methods are not supported:

Browser.Home
Brpwser.Fulscreen
Browser.ClearCache
Browser.Objects
Running steps not supported:

Chrome: //* pages
Multiple tabs
Multiple browsers
Web pages that include frame sets
WebXML test objects
Web test objects located inside iFrame controls with a'blank' or 'about:blank 'SRC in property value
Developers Tools Pane but running against Google Chrome while the developers tools pane is open is supported
Web 2.0 test objects or Web Extensibility-based test objects
Web-based env, such as SAP Web, Siebel, Java, .NET Webforms etc..

Click here to Download QTPWEB_00088 Patch

Thanks to Joe for such valuable information http://www.joecolantonio.com/2011/11/02/qtp11-now-supports-google-chrome-patch-qtpweb_00088/ 

Friday, October 14, 2011

Close all Browsers Opened Except QC

Dim intIndex
Set oDesc=Description.Create
oDesc("micclass").Value="Browser"
intIndex=0
While Browser("micclass:=Browser","index:="&intIndex).exist(0) and intIndex<Desktop.ChildObjects(oDesc).count
If instr(1, Browser("micclass:=Browser","index:="&intIndex).getRoProperty("name"),"Quality Center") = 0 Then
SystemUtil.CloseProcessByHwnd( Browser("micclass:=Browser","index:="&intIndex).getRoProperty("hwnd"))
else
intIndex=intIndex+1
End if
wend

How to Search for a particular value in Excel ?

Using the below script, we will be able to search a particular value in the excel file.

*******************************************************************************************

Set appExcel = CreateObject("Excel.Application")
appExcel.visible=true
 Set objWorkBook = appExcel.Workbooks.Open (filepath) 'opens the sheet

 Set objSheet = appExcel.Sheets("Sheet1)' To select particular sheet
With objSheet.UsedRange ' select the used range in particular sheet
    Set c = .Find ("nn")' data to find  
For each c in objSheet.UsedRange' Loop through the used range
 If c="nn" then' compare with the expected data
            c.Interior.ColorIndex = 40
make the gary color if it finds the data
End If
            Set c = .FindNext(c)' next search
next
End With
objWorkBook.save
objWorkBook.close
set appExcel=nothing

**********************************************************************************************

Thursday, October 13, 2011

Regular Expressions Utility Functions in VB Script

Below are the some of the very important functions using the regular expression in VB Script, which will make your Automation script creation very easy.

"********************************************************************************************
"'Function to check if a string matches a Regular Expression Pattern
"********************************************************************************************
Function IsRegExMatch(strText, regEx_Pattern, blnMatchCompleteString)
Dim oRegExp, retVal
'Create regular expression object.
Set oRegExp = New RegExp
'Set pattern.
oRegExp.Pattern = regEx_Pattern
'Ignore case
oRegExp.IgnoreCase = True
'Match complete string or not
oRegExp.Global = blnMatchCompleteString
'Test the regular expression
IsRegExMatch = oRegExp.Test(strText)
Set oRegExp = Nothing
End Function

"********************************************************************************************
"'Function to Match a Regular Expression and Replace with a particular text if a string matches a regular expression pattern.
"********************************************************************************************
Function RegExMatchandReplace(strText,regEx_Pattern,strReplacementText,blnMatchCompleteString)
Dim oRegExp, retVal,strReplacedText

' Create regular expression object.
Set oRegExp = New RegExp

'Set pattern.
oRegExp.Pattern = regEx_Pattern
'Ignore case
oRegExp.IgnoreCase = True
'Match complete string or not
oRegExp.Global = blnMatchCompleteString

'Test the regular expression
RegExMatch = oRegExp.Test(strText)
If RegExMatch = True Then
strReplacedText = oRegExp.Replace(strText,strReplacementText)
End If
RegExMatchandReplace = strReplacedText
Set oRegExp = Nothing
End Function

"********************************************************************************************
"'Function to Get Total Number of Matches of a Regular Expression Pattern in a particular string
"********************************************************************************************
Function GetRegExMatchCount(strText, regEx_Pattern, blnMatchCompleteString)
Dim oRegExp, retVal
'Create regular expression object.
Set oRegExp = New RegExp

'Set pattern.
oRegExp.Pattern = regEx_Pattern
'Ignore case
oRegExp.IgnoreCase = True
'Match complete string or not
oRegExp.Global = blnMatchCompleteString

'Test the regular expression
RegExpMatch = oRegExp.Test(strText)
If RegExpMatch Then
Set oRegExMatchCount = oRegExp.Execute(strText)
GetRegExMatchCount = oRegExMatchCount.Count
End If
Set oRegExp = Nothing
End Function

"********************************************************************************************
"'Function to Trim white space characters from end of a string
"********************************************************************************************
Public Function RTrimW(ByVal Text)
'String pattern ending with carriage return, tab, new line or a space character
RTrimPattern = "[\s]*$"

Dim oRegExp
Set oRegExp = New RegExp
oRegExp.Pattern =RTrimPattern
oRegExp.Global = False
RTrimW = oRegExp.Replace(Text,"")
Set oRegExp = Nothing
End Function

"********************************************************************************************
"'Function to Trim white space characters from start of a string
"********************************************************************************************
Public Function LTrimW(ByVal Text)
'String pattern ending with carriage return, tab, new line or a space character
LTrimPattern = "^[\s]*"
Dim oRegExp
Set oRegExp = New RegExp
oRegExp.Pattern = LTrimPattern
oRegExp.Global = False
LTrimW = oRegExp.Replace(Text,"")
Set oRegExp = Nothing
End Function

"********************************************************************************************
"Function to Trim white space characters from both start and end of a string
"********************************************************************************************
Public Function TrimW(ByVal Text)
TrimW = LTrimW(RTrimW(Text))
End Function

"********************************************************************************************

Thursday, October 6, 2011

QTP Tricky Questions And Answers

QTP Tricky Questions
  1. How will you automate a window which while spying is not returning any property value??
  2. How do you find the color and font of all the links on the page???
  3. What are the disadvantages of smart identification??
  4. What are the disadvantages of recovery scenario??
  5. How can you execute JavaScript on QTP??
  6. What are the basic prerequisites required in automating an Infragistics controls based application?
  7. Can I record a web based application on Mozilla??
  8. What is the difference between Repository Parameter and Repositories Collection??
  9. How to copy Virtual Object Manager from one computer to another computer??
  10. Can we use GetRoProperty method to get index or location of link in web application??

QTP Tricky Questions Answers fallows!

Answer 1: In QTP point of view we automation applications where there is proper addin. There are few cases where we can use win32 API and shell programming to achieve.
Example: use win32 query to get the handle or processed of the app and use some API to act on it...this will be a work around not a solution.

Answer 2: use DHTML properties ....use object.attributes...u will get all DHTML properties of that particular element in a collection.

Answer 3: There are many out of which is time consuming it eats lot of time and sometimes, it yields wrong results also in case of dynamic environment.

Answer 4: I think Space and time may be the constraints, because I never used it. It is pretty waste of time to use it.

Answer 5:  To execute JavaScript we have to fallow these steps
  1. Open HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\Configuration_UI\ScriptMgr
  2. Create a new String value with name AltProgID and value "Mercury.JSScriptMgr" and change the value of "Create" to 1
  3. Create a new child key inside the key                             HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\Configuration_UI\ScriptConstants                                                               {0ECD5785-BE7D-11d4-8EAF-11135659EC56}
  4. Repeat the same steps for the below key                           HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\Configuration
  5. Open                                                                                                                                C:\Program Files\Mercury Interactive\QuickTest Professional\bin\QTEditor.ini
  6. Add the below parameter to [General options]                                                             AllowJavaScript = 1                                                                                                 DisableVBScript = 1
  7. Done 
Answer 7: U can record but not as a web application but a standard windows application
Example: Window("Mozilla Firefox").WinObject("MozillaWindowClass").Type "sivakumar"

Answer 8: Repository parameters enable you to specify that certain property values should be parameterized, but leave the actual parameterization to be defined in each test that is associated with the object repository that contains the parameterized test object property values.
Repository parameters are useful when you want to create and run tests on an object that changes dynamically.
Repositories collection is a collection object that enables you to programmatically manage the run-time collection of shared object repository files associated with the current action, for more details check QTP Help file.

Answer 9: checkout for .VOT files in dat folder of the installation

Answer 10: NO

Friday, September 2, 2011

How to connect to Quality Center form Quick Test Professional

Quality Center:We can use Quality Center to create a project (central repository) of manual and automated tests and components, build test cycles, run tests and components, and report and track defects. You can also create reports and graphs to help you review the progress of test planning, runs, and defect tracking before a software release. When you work in QuickTest, you can create and save tests and components directly to your Quality Center project. You can run QuickTest tests or components from Quality Center and then use Quality Center to review and manage the results. You can also use Quality Center with Business Process Testing support to create business process tests, comprised of the components you create in either QuickTest or Quality Center with Business Process Testing support.

Advantages of Quality Center:

Quality Center is a single application for complete Test ManagementStarts with Requirements, goes through Test Planning and Test Execution, and on through Defects.Each of these items can be linked or associated with each other.

How to connect to QC form QTP:
with the below simple steps and pictures you will be able to see how we can connect to QC from QTP
1. Open file menu and click on to QC connection and give the QC server url.
 2. Give the user credentials, select the domain, project and close the window

 3. Now your QTP is connected to QC successfully.

now we will see How to upload QTP scripts to QC

1. Open automation script witch you already developed and click on save as.

2. Select the folder name and click on Ok button

Now we will see How to save resource files in QC

1.Open the Resource file from file menu and click on save as..
2. select the folder and click on ok.
Now all are ready in the QC from QTP, we will see how we will Execute Automation script from QC

1. Open QC and go to Test Lab.
2. Create a test set and select the Automation scripts.
3. Click on Run
4. Give Host IP/Name in the Run On Host field or Select Run All Tests Locally check box to run on local host
5.Click on the Launch report to see the QTP report.
Now we will see Batch Run of automation scripts from QC

1. Open QC and go to Test Lab.
2. Create a test set and select the Automation scripts.
3. Click On Run Test Set in QC
4. Give Host IP/Name in the Run On Host field or Select Run All Tests Locally check box to run on local host

All about QTP Descriptive Programming

What is Descriptive Programming?
In QTP if we want to do some actions/operation on an object that is not there in the object repository then we can use or go for Descriptive programming.
With out using QTP OR we can store properties of Test objects in the QTP Script by defining the Object properties.
Advantages of Descriptive Programming:
1. We will be able to work on writing QTP scripts even before the application is NOT available. It will help to increase the utilization of the Automation scripts as it will be immediately available once the application get released.
2.We can define the properties of an object without considering the parent objects in the hierarchy. i-e Object identification will not depend on its parent object.

there are 2 ways to describe your Test Objects.
One is description in form of the string arguments.
For Ex:  text box having html code as < input type=”text” name=”txtUserSiva” > can be accessed as below.
Browser(“Browser”).Page(“Page”).WebEdit(“Name:=txtUserSiva”,”html tag:=INPUT”).set “AutomationTestingwithQTP”.
The 2nd way is using Decription.create as below.
Set objDesc = Description.Create
objDesc(“html tag”).value= “INPUT”
objDesc(“name”).value= “txtUser”
Browser(“Browser”).Page(“Page”).WebEdit(objDesc).set “AutomationTestingwithQTP”.

Disadvantage of Descriptive Programing:
First disadvantage of Descriptive programming is Maintenance will be difficult.
Since Object repository will be stored in centralized place, property definition for any Object can be easily changed at any time if the application developer changes the property of the actual object/control.
But, in descriptive programming (DP) it is difficult to change the object property as each QTP developer will be defining object property in many places using DP.
For example, assume that you and team member are developing automation test scripts for testing gmail application.
Gmail login script will be used in many test scenarios.
Assume that you are automating some scenarios and your team member is automating some other scenarios.
In case of Object Repository, you and your team member will be forced to use same object description for login page controls/Objects (e.g username, password, login button).
So in future if Google changes any property (e.g change the button name from “login” to “get into gmail”), all the scenarios can be easily updated just by updating this change in Object repository.
But in case of DP, there is a possibility of defining the login button in multiple places. One definition by you and another by your team. (Anyway proper Team Coordination will avoid this issue, but practically it is very difficult to achieve this coordination.).
So, comparatively updating DP style coding is bit difficult if the application properties got changed.

Thursday, September 1, 2011

Understanding QTP License Types

Quick Test Professional has 2 types of licenses:

1. Seat License
2. Concurrent License

A trial version of the software is also available for 14 days

Seat License:A seat license is specific to the computer on which it is installed. This license includes a 14-day demo period.

Concurrent License:A concurrent license regulates the number of concurrent HP QTP users and requires installation of a license server from a separate CD-ROM found in the HP QTP package. Concurrent license is purchased seperately from HP and installed on the HP Functional testing Concurent License Server.

Tuesday, August 30, 2011

How to find DataType of a Variable with VBScript?

When you are validating application using our tool QTP, there will be scenarios to check the displayed value in the field is numeric/text/date etc,.The data type of a variable can be identified in two vbscript built-in functions.

1. Vartype
2. Typename

Vartype returns a numeric value indicating the sub datatype of a variable.

The below table contains return values that indicate respective subtypes.
Return Value
SubDatatype
Description
0
vbEmpty
Empty (uninitialized)
1
vbNull
Null (no valid data)
2
vbInteger
Integer
3
vbLong
Long integer
4
vbSingle
Single-precision floating-point number
5
vbDouble
Double-precision floating-point number
6
vbCurrency
Currency
7
vbDate
Date
8
vbString
String
9
vbObject
Automation object
10
vbError
Error
11
vbBoolean
Boolean
12
vbVariant
Variant (used only with arrays of Variants)
13
vbDataObject
A data-access object
17
vbByte
Byte
8192
vbArray
Array

Ex:
Dim x
x=10
msgbox vartype(x) 'Returns 2
In the above table 2 indicates vbInteger datatype.So x is an integer type.

Typename directly returns the name of the Sub Datatype of a variable.
SubDatatype
Description
Byte
Byte value
Integer
Integer value
Long
Long integer value
Single
Single-precision floating-point value
Double
Double-precision floating-point value
Currency
Currency value
Decimal
Decimal value
Date
Date or time value
String
Character string value
Boolean
Boolean value; True or False
Empty
Unitialized
Null
No valid data
< object type >
Actual type name of an object
Object
Generic object
Unknown
Unknown object type
Nothing
Object variable that doesn't yet refer to an object instance
Error
Error


Ex:
Dim x
x=10
msgbox typename(x)  'Returns “Integer”

There are some more VBScript Built-in functions to find whether a variable datatype is specific datatype or not.

IsArray -- Returns a Boolean value indicating whether a variable is an array or not.
IsDate -- Returns a Boolean value indicating whether an expression can be converted to a date.
IsEmpty -- Returns a Boolean value indicating whether a variable has been initialized.
IsNull -- Returns a Boolean value that indicates whether an expression contains no valid data (Null).
IsNumeric -- Returns a Boolean value indicating whether an expression can be evaluated as a number.
IsObject -- Returns a Boolean value indicating whether an expression references a valid Automation object.

Built in functions are available for only these datatypes. You can write built function for every datatype like below…
'@@@@@@@@@@@@@@@@@@@@@@
Function IsString(oValue)
  If vartype(oValue)=8 then
    IsString=true
  Else
    IsString=False
  End If
End Function
'@@@@@@@@@@@@@@@@@@@@@@