Qtp not just for gui anymore


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Qtp not just for gui anymore

  1. 1. QTP: Not just for GUI anymore Prepared by: Igor Gershovich www.connectedtesting.com
  2. 2. The true beauty of QTP isthat the only limitation isyour imagination and abilityto code in VBScript. Ian Fraser
  3. 3. Topics Web Services Telnet FTP XML
  4. 4. 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
  5. 5. 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.
  6. 6. 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)
  7. 7. 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 Connecttdc.Login sUser, sPasswordtdc.Connect sDomain, sProject
  8. 8. COM objects in Registry editor
  9. 9. 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
  10. 10. File Transfer Protocol (FTP)
  11. 11. Using WinInet API for FTP Windows WinINet.DLL enables applications to interact with the following protocols:  FTP  HTTP  Gopher
  12. 12. WinInet FTP hierarchy
  13. 13. FTP: File download steps1. 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
  14. 14. FTP: File download Script
  15. 15. FTP: File download is successful
  16. 16. 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.
  17. 17. FTP: Download file using Chilkat’sActiveX component (COM)
  18. 18. Resources: “FTP your scripts” by Dani Vainsteinwww.advancedqtp.com “Creating an FTP Component in Visual Basic”By Jeff Niblack www.15seconds.com
  19. 19. Telnet to Unix/Linux usingCOM objects
  20. 20. 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.
  21. 21. 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.
  22. 22. Dimac w3sockets DLL methods andproperties 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() :
  23. 23. 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/w3S
  24. 24. 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
  25. 25. W3Sockets API limitation This API has a problem with SendLine method when sending over 80 characters.
  26. 26. Web Services and XML
  27. 27. Web Services architecture
  28. 28. 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
  29. 29. 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.
  30. 30. 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
  31. 31. WinHttp.WinHttpRequest.5.1 Methodsand PropertiesMethods 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.
  32. 32. ChangeMetricWeightUnit Web Service on-linehttp://www.webservicex.net/convertMetricWeight.asmx
  33. 33. ChangeMetricWeightUnit Web Service WSDL
  34. 34. Using Http.WinHttpRequest.5.1 forWebServices
  35. 35. WinHttp.WinHttpRequest.5.1 snippet WinHttp.WinHttpRequest.5.1 ObjectSet oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")oWinHttpReq.Open "POST", sWebService_Url, FalseoWinHttpReq.setRequestHeader "Content-Type", sContentTypeoWinHttpReq.setRequestHeader "SOAPAction", sSOAPActionSend SOAP requestoWinHttpReq.Send sSOAP_RequestGet XML ResponsesXMLResponse = oWinHttpReq.ResponseText
  36. 36. SOAP XML Response
  37. 37. Off topic: Using WinHTTP for Webpages
  38. 38. HTML Response
  39. 39. 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
  40. 40. XML Request file
  41. 41. Using Msxml2.DOMDocument to loadXML file
  42. 42. Msxml2.DOMDocument Code SnippetlMsxml2.DOMDocumentSet oInputXmlDoc = CreateObject("Msxml2.DOMDocument") loadXML from fileoInputXmlDoc.load("C:XML_Files_DemoWeight_Conversion.xml")……Send SOAP requestoWinHttpReq.Send oInputXmlDoc
  43. 43. QTP XML Objects XMLUtil Object XMLAttribute Object XMLAttributesColl Object XMLData Object XMLElement Object XMLElementsColl Object XMLFile Object XMLItemColl Object
  44. 44. Example: Compare XML files using QTPobjects
  45. 45. Comparison results
  46. 46. Resources: MSDN http://msdn.microsoft.com/en-us/library/aa384109 Stefan Thelenius about Software Testing http://abouttesting.blogspot.com QuickTest Professional Help file
  47. 47. Igor Gershovich E-Mail: igershovich@connectedtesting.com Phone: 720-933-9395 www.connectedtesting.com