VS2010 Web Test Plugins for Web Service Messages


When testing Silver Light applications, we frequently run into dealing with non-Html content types. This is because most of the Silver Light applications use WCF RIA web services. Typically, this will be a binary format called MSBin1. Also, Silver Light applications may use other content types such as JSON, SOAP and REST to communicate with server. In general there is significantly greater use of Web Services and JSON in today’s web applications.

To test these applications under various scenarios we really need to edit, parameterize, extract values from responses and data drive these messages rather than simply playing back the same messages that are captured by Web Test recorder.

There is currently no editing capability for MSBin1 content in Web Test and JSON messages are difficult to read or edit. Also, in general Xml needs better editing capabilities than simple text editor that we have currently in Web Test.

Luckily there is a good set of extensibility points in Web Test for providing additional support for these content types. There are a number of plugins available to be downloaded from Code Plex project Web and Load Test Plugins for Visual Studio Team Test

The Web Test Plugins for Web Service Messages leverage these extensibility points to provide the following functionality for all these content types:

  1. Editor for Request body: The plugins provide a tree view of the structured data which allows easy editing, parameterization and data binding.
  2. XPath based Extraction and Validation Rules: XPath is a powerful tool to extract required data from Xml. This provides an additional capability for Xml and JSON based messages which can use existing extraction and validation rules that work on text. But for Msbin1, none of the existing rules work, because it is binary. So, these plugins are only way to extract and validate data from MSbin1 content types.
  3. Data Driving for MSBin1: Using these plugins, you can parameterize and data drive MSBin1 content.
  4. Additional tab in Web Test results that shows Request and Response in hierarchical view side by side. Using this user can add extraction/validation rules on response messages and parameterize requests.

When installed, the following components will be added to the user’s file system:

Plugin

Assembly/Files

Folder

Functionality

Visual Studio Addin – Additional tab in Web Test Result

WebServicePluginFor WebTestResultTab.AddIn

WebTest.WebService. Plugin.ResultTab.dll

<User Documents>\Visual Studio 2010\Addins

Adds a new tab called “Web Service” into Web Test results

Msbin1MessageEditor (IBinaryHttpBodyEditorPlugin)

XmlMessageEditor (IStringHttpBodyEditorPlugin)

WebServicePostRecording (WebTestRecorderPlugin)

WebTest.WebService. Plugin.MessageEditors.dll

~Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies \WebTestPlugins

WebTest Editor Plugins –  Request editors for various content types

XPathExtractionRule (ExtractionRule)

XPathValidationRule (ValidationRule)

WebServicePlugin (WebTestPlugin)

WebTest.WebService. Plugin.Runtime.dll

~Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

Runtime assembly -contains extraction/validation rules, data binding for binary content types.

All three assemblies work together, so all of them need to be present when authoring Web Test. Only runtime assembly (WebTest.WebService. Plugin.Runtime.dll) is required to run Web Test.

Read more about the plugins…

Download the plugins (WebServicePlugins.zip) from Code Plex and install under Visual Studio 2010 Ultimate and let me know your feedback.

result.jpg

Comments (11)

  1. BertrandH says:

    Hi,

    It would be great if all VS test web and load could be cross-posted in the Visual Studio Team Test blog. There are too many blogs to monitor.

    You should view all the test tools as one product (we use manual, coded UI, web/load testing portion from the tool)

    Bertrand

  2. mahipalkante says:

    Hi Bertrand:

    Thanks for the suggestion. This has been cross posted to VSTT blog.

    Thanks,

    Mahipal.

  3. Evgen says:

    I need dynamically to parameterize the requests in Web Test.

    After recommended installation of Plugins i got the additional tab "Web Service" , but without request’s “Tree View” contents , ability to edit it , without ability add extraction and validation rules in response’s “Tree View” contents.

    Please advise , if there any options.

    Thanks.

  4. Ajit says:

    Downloaded the .zip file, but not able to install the plugin under VS2010.

    could any one please help me ?

  5. Hussain says:

    It is working perfectly fine except the parameterization section. When we follow the same steps as mentioned in the pdf, the typed value is not getting saved. Once we edit the actual request data by inserting statements like {{DataSource1.user#csv.name}} , it is giving some error like "Request failed: Data Not Found for:DataSource1.user.name"

    Can you oplease help me?

  6. Jay says:

    Hi I wish to parametrize the folder name added in my script and with to validate its added and at the end i wish to delete the folder.

    Using this plugin can you tell me where to paramterize to the data source. In my webrequest I don't the data entered by me while recording the script or I don't know if the XPAT i wish to verify has the required folder name i wish to verify and delete.

    Any pointers in this regard will surely be a great help

    Thanks

  7. Vegard says:

    This looks exactly like what I need! Any info on how I can install this for Visual Studio 2012?

    I'm trying to extract this response:

    0x00000000  7B  22  45  78  61  6D  41  6E  73  77  65  72  49  64  22  3A    {"ExamAnswerId":

    0x00000010  22  37  35  37  61  33  37  33  35  2D  65  36  32  36  2D  34    "757a3735-e626-4

    But the memory code to the right makes it hard to extract the examAnswerId into a parameter.

  8. Naveen says:

    Vegard,

    Install the plugin from the below link for VSTS2012

    teamtestplugins.codeplex.com/…/97603

    Thanks,

    Naveen

  9. Yogesh says:

    Hi,

    I have downloaded this plugin but still i am not able to see any response in it. I am testing the silverlight application and i am getting the proper response. The response is "the content is loading wait".. Can anyone help.

  10. yuvaraj says:

    Hi,

    please help me asap i have installed web service plugin but my response in decode xml so i am not able to extract praticular data in web service using xpath while extract i am getting all value in extract variable.and i saw in test view tab and response in decode format like ;<name;&gt. so how can i extract data

  11. Mano says:

    Previously when first time installed VS2013 with setup file i got the webservice tab. Due to some reasons i removed VS2013 . Recently again installed vs2013 with setup file using codeplex  I'm not getting Webservice tab. Please help.