VIDEO – QuickTest Pro – How to Test a REST Service

PerfectoTopAd

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





    18 comments
    shaan - May 10, 2011

    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

    Reply
      Joe Colantonio - May 12, 2011

      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

      Reply
    Sarma - June 13, 2011

    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

    Reply
      Joe Colantonio - June 14, 2011

      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

      Reply
    bhuvan - October 11, 2011

    How to POST the REST webservice request which is available in xml format. Please do the needful on this.

    Reply
    Susu - February 16, 2012

    Hi Joe

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

    Susu

    Reply
    Suman - May 21, 2012

    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.

    Reply
      Joe Colantonio - June 2, 2012

      Suman » Hi – Did you set the contentType = “text/XML”?

      Reply
    M Sivateja - June 5, 2012

    hi Joe,

    I am trying to test rest service.In response i am gettng internal error.please advice

    Reply
      Joe Colantonio - June 9, 2012

      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?

      Reply
    mamta - October 31, 2012

    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

    Reply
    Balu - March 26, 2013

    Hi Joe,

    How can I send Authorization Key and Secret with my REST service?

    Thanks,
    Balu

    Reply
    Jas - April 18, 2013

    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

    Reply
      Sudheer - July 1, 2013

      Hi Jas,

      Did you come to know how to modify the code to receive the response. Please help me.

      Thanks!!

      Reply
    Sudheer - July 1, 2013

    Hi Joe,

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

    Reply
    Ranjith - September 27, 2013

    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

    Reply
    gugapriya - October 3, 2014

    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?

    Reply
    Click here to add a comment

    Leave a comment: