0% found this document useful (0 votes)
962 views

QTP - Not Just For GUI Anymore

QTP can be used to test non-GUI applications by accessing APIs and libraries directly. This allows testing things like web services, FTP, Telnet, and XML without relying on the GUI. COM objects and Windows APIs allow interacting with these technologies programmatically. For example, the WinHttp API can be used to test web services, and WinSock APIs allow testing Telnet connections without an external client. QTP's XML objects also provide functionality for working with XML files and responses.

Uploaded by

Shiva Varaganti
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
962 views

QTP - Not Just For GUI Anymore

QTP can be used to test non-GUI applications by accessing APIs and libraries directly. This allows testing things like web services, FTP, Telnet, and XML without relying on the GUI. COM objects and Windows APIs allow interacting with these technologies programmatically. For example, the WinHttp API can be used to test web services, and WinSock APIs allow testing Telnet connections without an external client. QTP's XML objects also provide functionality for working with XML files and responses.

Uploaded by

Shiva Varaganti
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 48

QTP: Not just for GUI anymore

Prepared by: Igor Gershovich


www.connectedtesting.com
The true beauty of QTP is
that the only limitation is
your imagination and ability
to code in VBScript.

Ian Fraser
Topics

 Web Services
 Telnet
 FTP
 XML
Advantages using APIs

 Accessing non-GUI applications via API


directly:
 Increases test execution speed
 Reduces synchronization problems related to GUI
window like Telnet, DOS CMD, PuTTY, Exceed,
etc.
 Allows execute scripts on locked boxes
 No need for QTP add-ins
Let’s talk about Component Object
Model (COM) first
COM is used by developers to create
reusable software components, link
components together to build applications,
and take advantage of Windows services.
The family of COM technologies includes:
 COM+

 Distributed COM (DCOM)

 ActiveX Controls.
COM methods and properties
 COM properties and methods
 Properties don’t take any arguments and can be read/write
value = object.property (read)
object.property = value (write)
 Methods are read only if they returns value

value = object.method() (returns value)


Set RS = Conn.Execute(“Select * From Tbl") (returns object)
Conn.Close (returns no value)
tdc.Login “username", “psw" (method with parameters,
returns no value)
VBScript CreateObject function
CreateObject function creates and returns a
reference to an Automation object
CreateObject(servername.typename [, location])

Example connecting to Quality Center (QC):

Set tdc = CreateObject ("TDApiOle80.TDConnection")


tdc.InitConnectionEx sServerName 'Connect
tdc.Login sUser, sPassword
tdc.Connect sDomain, sProject
COM objects in Registry editor
Resources:

 Microsoft “COM: Component Object Model


Technologies”
www.microsoft.com/com/default.mspx
 “COM for ASP Programmers”
By Wayne Berry
http://www.15seconds.com/Issue/971214.htm
File Transfer Protocol (FTP)
Using WinInet API for FTP

 Windows WinINet.DLL enables applications


to interact with the following protocols:
 FTP
 HTTP
 Gopher
WinInet FTP hierarchy
FTP: File download steps

1. Open an FTP session with InternetOpen


function. The function returns a session
handle.
2. Connect to the host by calling the
InternetConnect function using session
handle. It returns a connection handle.
3. Call the FtpGetFile function to get the file.
4. Close the handles created in Steps 1 and 2,
using the InternetCloseHandle function
FTP: File download Script
FTP: File download is successful
ActiveX components (COM) for FTP

 The are numerous ActiveX (COM)


components for FTP free and not free:
 by Chilkat Software www.chilkatsoft.com
 by Easewe Software www.easewe.com
 by X360 Software www.x360soft.com
 by Dart Communications www.dart.com
 etc.
FTP: Download file using Chilkat’s
ActiveX component (COM)
Resources:

 “FTP your scripts” by Dani Vainstein


www.advancedqtp.com
 “Creating an FTP Component in Visual Basic”

By Jeff Niblack www.15seconds.com


Telnet to Unix/Linux using
COM objects
A little bit of history
A while back I had to automate a Client/Server application and
execute quite a few UNIX commands on a backend.
After trying several things, like PuTTY, TE Add-in, Exceed, etc.
Exceed worked decent enough, but it was a complicated
solution. I had to use "Capture to File" feature and then parse the
file.
After working with LoadRunner WinSock protocol for Telnet
interface I start looking for WinSock (ActiveX) COM interface that
can be used in QTP
The goal was to connect to Unix/Linux box bypassing external
GUI applications and execute scripts on locked boxes. Another
reason was that QTP has problems with GetVisibleText method.
ActiveX components (COM) for Telnet

 The are numerous ActiveX (COM)


components for Telnet free and not free:
 by Dimac Development www.dimac.net
 EasyCom 3.1
www.sharewareconnection.com/easycom.htm
 by Dart Communications www.dart.com
 etc.
Dimac w3sockets DLL methods and
properties
      COM Object - socket.tcp
    Buffer : String
DoTelnetEmulation : Boolean
Host : String
TelnetEmulation : String
TimeOut : Integer
Close() :
GetLine() : String
GetText( len ) : String
Open() :
SendLine( Line ) :
SendText( text ) :
Wait() :
WaitFor( Substring ) : Boolean
WaitForDisconnect() :
Dimac W3Socket API installation
 You need to download W3Socket Dll to your
location and register it using SocketReg.exe
included in a zip file.
 Note: Readme said that you need to download
winsock2 also - ignore it.

 The full W3Sockets reference is located:


 
http://www.dimac.net/Products/FreeProducts/
w3Sockets/Reference/Refstart.htm
Example for Unix/Linux
 The function on next slide:
 connect to Unix/Linux box via Telnet
 navigates to TestDirectory
 executes “grep” command
 returns “grep” results

 You can also find more examples on Web:


 http://www.tek-tips.com/viewthread.cfm?qid=938038&page=3
 http://www.mediamonkey.com/forum/viewtopic.php?t=21124
W3Sockets API limitation

 This API has a problem with SendLine


method when sending over 80 characters.
Web Services and XML
Web Services architecture
HP/Mercury Solutions for WebServices

 The HP Service Test software – is a SOA


testing solution that simplifies and accelerates
the automated functional testing of SOA
services. HP Service Test Management module
plugs into Quality Center
 QTP Web Services add-in
Windows APIs for Web Services

 HP Service Test and QTP Web Services


Add-in are great solutions for comprehensive
Web Services testing. However, the
lightweight solution using Windows APIs
works perfect in most cases.
WinHTTP DLL

 Microsoft Windows HTTP Services


(WinHTTP) provides developers with a
server-supported, high-level interface to the
HTTP/1.1 Internet protocol.
 WinHTTP WinHttpRequest COM object
uses Winhttp.dll
WinHttp.WinHttpRequest.5.1 Methods
and Properties
Methods of WinHttp
 Abort: Aborts a WinHTTP Send method.
 GetAllResponseHeaders: Retrieves all HTTP response headers.
 GetResponseHeader: Retrieves the HTTP response headers.
 Open: Opens an HTTP connection to an HTTP resource.
 Send: Sends an HTTP request to an HTTP server.
 SetAutoLogonPolicy: Sets the current Automatic Logon Policy.
 SetClientCertificate: Selects a client certificate to send to a Secure Hypertext Transfer Protocol (HTTPS)
server.
 SetCredentials: Sets credentials to be used with an HTTP server—either an origin or a proxy server.
 SetProxy: Sets proxy server information.
 SetRequestHeader: Adds, changes, or deletes an HTTP request header.
 SetTimeouts: Specifies, in milliseconds, the individual time-out components of a send/receive operation.
 WaitForResponse: Specifies the wait time, in seconds, for an asynchronous Send method to complete,
with optional time-out value.
Properties of WinHttp
 Option: Sets or retrieves a WinHTTP option value.
 ResponseBody: Retrieves the response entity body as an array of unsigned bytes.
 ResponseStream: Retrieves the response entity body as an IStream.
 ResponseText: Retrieves the response entity body as a string.
 Status: Retrieves the HTTP status code from the last response.
 StatusText: Retrieves HTTP status text.
ChangeMetricWeightUnit Web Service on-line
http://www.webservicex.net/convertMetricWeight.asmx
ChangeMetricWeightUnit Web Service WSDL
Using Http.WinHttpRequest.5.1 for
WebServices
WinHttp.WinHttpRequest.5.1
snippet
' WinHttp.WinHttpRequest.5.1 Object
Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
oWinHttpReq.Open "POST", sWebService_Url, False
oWinHttpReq.setRequestHeader "Content-Type", sContentType
oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction

'Send SOAP request


oWinHttpReq.Send sSOAP_Request

'Get XML Response


sXMLResponse = oWinHttpReq.ResponseText
SOAP XML Response
Off topic: Using WinHTTP for Web
pages
HTML Response
Msxml2.DOMDocument

 A DOM for XML is an object model that


exposes the contents of an XML document
 We use the XML DOM by creating an
instance of an XML parser
 CreateObject(“Msxml2.DOMDocument ”) is
the method to create an instance of the
Parser object
 Msxml2.DOMDocument COM object uses
Msxml.dll
XML Request file
Using Msxml2.DOMDocument to load
XML file
Msxml2.DOMDocument Code Snippet

'lMsxml2.DOMDocument
Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument")
'loadXML from file
oInputXmlDoc.load("C:\XML_Files_Demo\Weight_Conversion.xml")


'Send SOAP request
oWinHttpReq.Send oInputXmlDoc
QTP XML Objects

 XMLUtil Object
 XMLAttribute Object
 XMLAttributesColl Object
 XMLData Object
 XMLElement Object
 XMLElementsColl Object
 XMLFile Object
 XMLItemColl Object
Example: Compare XML files using
QTP objects
Comparison results
Resources:

 MSDN http://msdn.microsoft.com/en-
us/library/aa384109.aspx
 Stefan Thelenius about Software Testing
http://abouttesting.blogspot.com
 QuickTest Professional Help file
Igor Gershovich

 E-Mail: [email protected]
 Phone: 720-933-9395
 www.connectedtesting.com

You might also like