Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Web performance tests plug-ins enable you to isolate and reuse code outside the main declarative statements in your Web performance test. A customized Web performance test plug-in offers you a way to call some code as the Web performance test is run. The Web performance test plug-in is run one time for every test iteration. In addition, if you override the PreRequest or PostRequest methods in the test plug-in, those request plug-ins will run before or after each request, respectively.
You can create a customized Web performance test plug-in by deriving your own class from the WebTestPlugin base class.
You can use customized Web performance test plug-ins with the Web performance tests you have recorded, which enables you to write a minimal amount of code to obtain a greater level of control over your Web performance tests. However, you can also use them with coded Web performance tests. For more information, see How to: Create a Coded Web Performance Test.
Note
You can also create load test plug-ins. For more information, see How to: Create a Load Test Plug-In.
Requirements
- Visual Studio Ultimate
To create a custom Web performance test plug-in
- Open a Web performance and load test project that contains a Web performance test. - For more information about how to create a Web performance and load test project, see How to: Create and Configure Test Projects for Automated Tests. 
- In Solution Explorer, right-click on the solution and select Add and then choose New Project. - The Add New Project dialog box is displayed. 
- Under Installed Templates, select Visual C#. 
- In the list of templates, select Class Library. 
- In the Name text box, type a name for your class. 
- Choose OK. 
- The new class library project is added to Solution Explorer and the new class appears in the Code Editor. 
- In Solution Explorer, right-click the References folder in the new class library and select Add Reference. 
- The Add Reference dialog box is displayed. 
- Expand the Assemblies node and choose Framework. Scroll down, and select Microsoft.VisualStudio.QualityTools.WebTestFramework 
- Choose OK. - The reference to Microsoft.VisualStudio.QualityTools.WebTestFramework is added to the Reference folder in Solution Explorer. 
- In Solution Explorer, right-click on the top node of the Web performance and load test project that contains the load test to which you want to add the Web performance test plug-in and select Add Reference. 
- The Add Reference dialog box is displayed. 
- Choose the Solution node and select the Class Library Project. 
- Choose OK. 
- In the Code Editor, write the code of your plug-in. First, create a new public class that derives from WebTestPlugin. 
- Implement code inside one or more of the event handlers. See the following Example section for a sample implementation. 
- After you have written the code, build the new project. 
- Open a Web performance test. 
- To add the Web performance test plug-in, choose Add Web Test Plug-in on the toolbar. - The Add Web Test Plug-in dialog box is displayed. 
- Under Select a plug-in, select your Web performance test plug-in class. 
- In the Properties for selected plug-in pane, set the initial values for the plug-in to use at run time. - Note - You can expose as many properties as you want from your plug-ins; just make them public, settable, and of a base type such as Integer, Boolean, or String. You can also change the Web performance test plug-in properties later by using the Properties window. 
- Choose OK. - The plug-in is added to the Web Test Plug-ins folder. - Warning - You might get an error similar to the following when you run a Web performance test or load test that uses your plug-in: - Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. - This is caused if you make code changes to any of your plug-ins and create a new DLL version (Version=0.0.0.0), but the plug-in is still referencing the original plug-in version. To correct this problem, follow these steps: - 
In your Web performance and load test project, you will see a warning in references. Remove and re-add the reference to your plug-in DLL. 
- 
Remove the plug-in from your test or the appropriate location and then add it back. 
 
- 
Example
The following code creates a customized Web performance test plug-in that adds an item to the WebTestContext that represents the test iteration.
After running the Web performance test, by using this plug-in you can see the added item that is named TestIteratnionNumber in the Context tab in the Web Performance Results Viewer.
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
    [Description("This plugin can be used to set the ParseDependentsRequests property for each request")]
    public class SampleWebTestPlugin : WebTestPlugin
    {
        private bool m_parseDependents = true;
        public override void PreWebTest(object sender, PreWebTestEventArgs e)
        {
            // TODO: Add code to execute before the test.
        }
        public override void PostWebTest(object sender, PostWebTestEventArgs e)
        {
            // TODO: Add code to execute after the test.
        }
        public override void PreRequest(object sender, PreRequestEventArgs e)
        {
            // Code to execute before each request.
            // Set the ParseDependentsRequests value on the request
            e.Request.ParseDependentRequests = m_parseDependents;
        }
        // Properties for the plugin.
        [DefaultValue(true)]
        [Description("All requests will have their ParseDependentsRequests property set to this value")]
        public bool ParseDependents
        {
            get
            {
                return m_parseDependents;
            }
            set
            {
                m_parseDependents = value;
            }
        }
    }
}
See Also
Tasks
How to: Create a Request-Level Plug-In
How to: Create a Custom Extraction Rule for a Web Performance Test
How to: Create a Custom Validation Rule for a Web Performance Test
How to: Create a Load Test Plug-In
How to: Create a Coded Web Performance Test
How to: Edit an Existing Web Performance Test Using the Web Performance Test Editor
Reference
Other Resources
Creating and Using Custom Plug-ins for Load and Web Performance Tests