VSTS Rangers Projects - WCF Load Test Tool 3.0 Ships

Blue Man Holding a Clipboard While Reviewing Employess Clipart Illustration Rob Jarratt asked me to have a quick look at the latest version of the WCF Load Test tool … I decided to postpone one of my UNISA assignments this weekend and instead explore the world of WCF again. The decision was worth it, because the new WCF Load Test Tool is an exceptional value-add to any developers and testers working with Windows Communication Foundation (WCF) based solutions.

Here is an extract from the documentation, quoted in italic:

Purpose

This tool takes a WCF or Fiddler2 trace file and a WCF client proxy, or a WCF interface contract, and generates a unit test that replays the same sequence of calls found in the trace file for WCF and ASMX services. The code generated is easily modifiable so that data variation can be introduced for the purpose of doing performance testing.

The tool will also integrate with Visual Studio 2005/2008 Team Edition for Software Testers and installs a wizard for creating the trace and processing it from inside Visual Studio.

What’s New in 3.0

The main new feature is support for ASMX web services. The tool uses WCF’s ability to interoperate with ASMX web services to test these services. A WCF proxy must be generated from the web service’s WSDL for the tool to be able to work, but the trace does not need to come from a WCF client, the tool now also supports reading pre-captured traces collected using Fiddler2.

There have been numerous other changes and fixes, the more significant ones are:

  • Source code is now a Visual Studio 2008 project
  • Support for custom trace file parsers.
  • Now handles classes derived from a generic collection.
  • Streams are now supported on data contracts and message contracts.
  • Tool now continues to run even if it fails to find a method in the referenced assemblies.
  • Support for out and ref parameters has been added.
  • Timed comments (command line only)
  • Derived types using KnownType/XmlInclude attribute are now supported.
  • Fixed bug where array elements were assigned sub classes of the element type.
  • Fixed bug with certain types (e.g. DateTime) used as type parameters in generic collections and dictionaries.

Blue And White Robot Sitting And Looking At His Own Hands In Amazement Glossy Robot Inspecting Himself My view on this tool after the weekend excursion

  1. Installation: It comes with a complete installation … point, click, install … it’s that easy.
  2. Documentation: It also comes with a comprehensive lab document, explaining and guiding your through the features.
  3. Getting Ready: To test both the WCF tracing and Fiddler tracing features I decided to create a simple, yet trusted calculator service, exposing itself using the WCF infrastructure.
    1. Simple Interface
      namespace WcfCalculatorService
      {
      [ServiceContract]
      public interface ICalculator
      {
      [OperationContract]
      int Addition(int valueOne, int valueTwo);

              [OperationContract]
      int Subtraction(int valueOne, int valueTwo);

              [OperationContract]
      string Ping();
      }
      }

    2. Simple Service Implementation
      public class CalculatorService : ICalculator {
          public int Addition(int valueOne, int valueTwo) {
      return valueOne + valueTwo;
      }

          public int Subtraction(int valueOne, int valueTwo) {
      return valueOne - valueTwo;
      }

          public string Ping() {
      return "Hello there, how can I help you today?";
      }
      }

    3. Configuration
      I had to configure the diagnostics as follows, whereby the details are all in the product step-step document:
      image image

  4. Testing
    1. WCF Trace File
      1. Create a WCF trace file, after doing the mentioned configuration and running your service through the paces.
      2. Using the new Visual Studio Wizard, I created a test project by simply pointing the wizard at the pre-recorded WCF trace file.
        image image
      3. It asked me to create a configuration file to define the service endpoints, etc. … I took the lazy route and simply dropped the app.config from my test client into the WCF Test project and voila, off it went.
      4. I repeated step 2, using the “execute client” option to generate a trace file.
    2. Fiddler Trace File … if you like “fiddling” and/or have no test client, you can optionally use the Fiddler2 tool to capture a trace file, which you can then pass to the WCF Test wizard as a pre-recorded file. Cool!
  5. Conclusion … definitely a image_thumb13image_thumb13image_thumb13image_thumb13image_thumb13stars tool, which will find a permanent home in my IT toolbox, overwriting version 2.0.

Get the latest bits and pieces at Codeplex in the following home: https://wcfloadtest.codeplex.com.