UFT API – How to Dynamically Get and Set a WebService EndPoint

PerfectoTopAd

How to Dynamically Get or Set the UFT API Web Service EndPoint

One of the more common questions I'm asked is “how do I set or get the current WSDL's endpoint using custom code?” Unfortunately, HP doesn't currently have a UFT API document that describes all the methods and properties for all of the UFT API classes/objects.

In truth it's pretty easy, but to actually determine which method to use can be a real time-consuming, hit-or-miss process. So to save some time, you can set or get the web service's Endpoint address (and for that matter, any of the General properties) in custom code or in an event using:

this.StServiceCallActivity5.TransportProtocol.SOAPProperties

FYI- your StServiceCallActivity number might be different than mine.

How to read the UFT API EndPoint value at runtime

For this example, I'm using the WSDL http://www.webservicex.net/geoipservice.asmx?WSDL
and the GetGeoIP operation. In the GetGeoIP's Properties>Events I created a custom handler under the OnBeforeExecuteStepEvent. To quickly test this out, I added a using System.Windows.Forms; under my using statements, then entered the following:

string wsdl = this.StServiceCallActivity4.TransportProtocol.SOAPProperties.EndpointAddress;
System.Windows.Forms.MessageBox.Show(wsdl);

How to Programmatically Set the UFT API EndPoint Value

Using the same EndpointAddress method, you can also programmatically set the endpoint by doing the following:

this.StServiceCallActivity7.TransportProtocol.SOAPProperties.EndpointAddress = “http://joe”;

Of course, the test will fail if you run it because this is not a real endpoint for the web service — but it will quickly prove to you that the endpoint is changed at runtime.

Now, in the real world, you can read endpoints from a file, spreadsheet, or in custom code and set your WSDL endpoint. Cool – hope it helps.

More UFT API Automation Awesomeness


For more UFT API Automation Awesomeness, tips, tricks and how-tos, check out my new book, The UFT API Testing Manifesto – A step-by-step, hands-on testing guide for the masses, available on Amazon.com!

Don't own a Kindle? No Problem — you can still read my UFT API book!

I'm aware that some of you have had trouble accessing my books in the past. The truth is that you don't need a Kindle! There are a variety of free ways you can read a Kindle eBook:

In short, it's really simple to read Amazon Kindle books, no matter what type of device you use to access the Internet.

9 comments
Testing Bits – 11/17/13 – 11/23/13 | Testing Curator Blog - November 24, 2013

[…] UFT API – How to Dynamically Get and Set a WebService EndPoint – Joe Colantonio – https://www.joecolantonio.com/2013/11/19/uft-api-how-to-dynamically-get-and-set-a-webservice-endpoint… […]

Reply
Colin Fries - November 27, 2013

Just bought this off of Amazon.com. Thanks for putting this together!

-C-

Reply
Mark - January 16, 2014

This is great for detecting a change in the endpoint. Is there a way to programmatically update the wsdl and store the wsdl with the updated script saving the time to manually update each script’s wsdl?

Reply
Sahil Chaudhary - June 6, 2014

Hi Joe ,

I have read your book “The UFT API Testing Manifesto” and is really good for every one who wants to work using API Test using UFT.

But I have one query which is even I could not find in your book. If I want to check httpStatusCode after response from web service whether web service has executed successfully or not how can I retrieve it. Is there any build in function for this.

Or if I have to write custom code can you please tell which class and method I can use.

And from where I can know about methods and classes of API Test in UFT.

Please answer above query.

Thanks & Regards
Sahil Chaudhary

Reply
    Joe Colantonio - September 10, 2014

    Is this for a web service? You can normally check status code in the checkpoints area of the web service properties.

    Reply
Himanshu arora - July 8, 2015

Joe Book WSDL which you mentioned in your book isn’t working.Can you please look into that?

Reply
Revs - October 24, 2016

How to enable a Web Service Call Property Value at runtime and set a value?

I am trying to set Web Service Call Property Value at runtime using C#

this.StServiceCallActivity4.InputEnvelope.SelectSingleNode(“/*[local-name(.)=’Name’][1]”).InnerText=”Test”;

and it works fine if the property is enabled. My Issue is if the property is disabled and if I have to set the value based on a condition at runtime (only if required) then the test fails because the property is disable.

Reply
    Joe Colantonio - October 25, 2016

    Not sure – I’m the type of person that needs to try it to figure out what you could possibly do. Anyone else have any suggestions?

    Reply
Click here to add a comment

Leave a comment: