QuickTest Pro How to Test a REST Service

Automation Testing Published on:
Code Hacker

In this video, I show a quick example on how to use QuickTest Pro 11 and WinHttp to test a REST service. The QTP web-addin is not needed for this example.

Below is the code used for this example:

Set myRestBody = XMLUtil.CreateXMLFromFile("C:\body.xml") 
restRequest = myRestBody.ToString
url ="http://localhost:24240/HPFlights_REST/FlightOrders/"
contentType ="text/XML"
'1) Create reference to the WinHTTP request com object
 Set oWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") 
 '2) Open a HTTP connection to a HTTP resource 
 oWinHttp.Open "POST", url, False
 '3) Add a HTTP request headers for endpoint and conent type
 oWinHttp.setRequestHeader "Content-Type", contentType 	oWinHttp.setRequestHeader "SOAPAction", url
'4) Send a HTTP request to the HTTP server with the header and body info
oWinHttp.Send restRequest
'5) Get response
 response = oWinHttp.ResponseText
'6) Close object reference 
Set oWinHttp = Nothing
'7) print the response
print response

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. hi joe,
    i have a xml, public key and a private key. i would like to know if i can digitially sign this xml and then send it to a webservice using qtp. not the service test.
    thank you

    1. shaan ยป Hi Shaan – I’m not sure how to do this. Have you taken a look at the AddAttachment or AddHeader Methods of the WebService object? Good Luck ~Joe

  2. Hi Joe
    thanks for you code. I have to authenticate before
    ‘4) Send a HTTP request to the HTTP server with the header and body info
    oWinHttp.Send restRequest
    How do i do that?

    Thanks
    Sarma

    1. Sarma ยป Hi Sarma – you might want to try using the SetCredentials method. The SetCredentials method sets credentials to be used with an HTTP server, whether it is a proxy server or an originating server.

      Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0

      WinHttpReq.SetCredentials “yourusername”, ourHTTPREQUEST_SETCREDENTIALS_FOR_SERVER

      For more info check out: http://msdn.microsoft.com/en-us/library/aa384058(v=vs.85).aspx

      Cheers,
      Joe

  3. Hi Joe

    if “contentType = application/x-www-form-urlencoded”, the request format should be Post Form, and how to send a request?

    Susu

  4. Hi Joe,

    Very thank you for you Video on how to test Rest Service. I did what you suggested. I am getting Response in Json format, But I need it in XML format. Is I am doing any mistakes? Please let me know your comments?
    For your information, I am getting response in XML format when i send the request through SOUP 3.6.1 service.

    1. M Sivateja ยป Hi what rest service are you trying to test? Also is there anything else in the error msg or is it just internal error?

  5. hi

    while running the same example i am getting error at line number 5โ€ฆ Invalid character
    Line (5): โ€œcontentType =โ€application/jsonโ€โ€.

    can u please help on this

  6. Hi Joe,
    I am trying to automate rest services API using QTP, which returns the response in JSON format. What are the changes to be done on the above sample script to perform a Search operation ( GET). I have modified the content type= “application/json”. Any help on this is highly appreciated.

    Thanks in Advance,
    Jas

  7. Hi Joe,

    As Jas mentioned, I am testing REST service which returns JSON format. What changes need to be done for ‘GET’ operation

  8. Hi Joe,

    One question, If I want to parameterize my rest request for different data inputs, how can we do that with above script.

    Thanks,
    Ranjith

  9. I was trying to automate this restful service but when i use this code i was getting “The remote server returned an error: (407) Proxy Authentication Required” … Does anyone have code to resolve this issue?

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
Code Hacker

Latest Automation Trends: Top 13 Predictions for 2023

Posted on 01/04/2023

Welcome to my annual Latest Automation Trends: Top 13 Predictions for 2023 article. ...

Chrome Selenium Driver in Visual Studio C#

Posted on 12/21/2022

I'm sure you've all heard of Selenium by now. It's a popular tool ...

15 Reasons Why You Should (or shouldn’t) Automate a Test

Posted on 12/20/2022

Just because you can automate tests doesnโ€™t necessarily mean that you should. In ...