如何:创建 Web 性能测试插件

使用 Web 性能测试插件,可以隔离代码并在 Web 性能测试中的主要声明性语句外部重用代码。 自定义的 Web 性能测试插件为在运行 Web 性能测试时调用某些代码提供了途径。 在每个测试迭代中,Web 性能测试插件都要运行一次。 此外,如果重写测试插件中的 PreRequest 或 PostRequest 方法,这些请求插件将分别在每个请求之前或之后运行。

通过从 WebTestPlugin 基类派生你自己的类,可以创建自定义的 Web 性能测试插件。

可以将自定义的 Web 性能测试插件用于已记录的 Web 性能测试,这样你只需编写极少量的代码即可获得对 Web 性能测试的更大程度控制。 此外,还可以将它们用于编码 Web 性能测试。 有关详细信息,请参阅[已停用] 如何:创建编码的 Web 性能测试

备注

也可以创建负载测试插件。有关详细信息,请参阅如何:创建负载测试插件

要求

  • Visual Studio 旗舰版

创建自定义 Web 性能测试插件

  1. 打开包含 Web 性能测试的 Web 性能和负载测试项目。

    有关如何创建 Web 性能和负载测试项目的详细信息,请参阅如何:为自动测试创建和配置测试项目

  2. 在解决方案资源管理器中,右键单击解决方案,选择**“添加”,然后选择“新建项目”**。

    随即出现**“添加新项目”**对话框。

  3. 在**“已安装的模板”下,选择“Visual C#”**。

  4. 在模板列表中,选择**“类库”**。

  5. 在**“名称”**文本框中,键入类的名称。

  6. 选择**“确定”**。

  7. 新的类库项目将添加到解决方案资源管理器中,并且新类会出现在代码编辑器中。

  8. 在“解决方案资源管理器”中,右击新类库中的**“引用”文件夹并选择“添加引用”**。

  9. 这将显示**“添加引用”**对话框。

  10. 选择**“.NET”选项卡,向下滚动,然后选择“Microsoft.VisualStudio.QualityTools.WebTestFramework”**

  11. 选择**“确定”**。

    对**“Microsoft.VisualStudio.QualityTools.WebTestFramework”的引用将添加到解决方案资源管理器中的“引用”**文件夹中。

  12. 在解决方案资源管理器中,右键单击包含负载测试(要向该负载测试中添加 Web 性能测试插件)的 Web 性能和负载测试项目的顶级节点,然后选择**“添加引用”**。

  13. 将显示**“添加引用”**对话框。

  14. 选择**“项目”**选项卡,然后选择“类库项目”。

  15. 选择**“确定”**。

  16. 在代码编辑器中,编写插件的代码。 首先,创建一个从 WebTestPlugin 派生的新公共类。

  17. 实现一个或多个事件处理程序内的代码。 有关示例实现,请参见下面的“示例”部分。

  18. 在编写完代码后,生成新项目。

  19. 打开 Web 性能测试。

  20. 若要添加 Web 性能测试插件,请在工具栏上选择**“添加 Web 测试插件”**。

    随即显示**“添加 Web 测试插件”**对话框。

  21. 在**“请选择一个插件”**下,选择 Web 性能测试插件类。

  22. 在**“选定插件的属性”**窗格中,设置要在运行时使用的插件的初始值。

    备注

    可根据需要从插件中公开任意多个属性;只需将其设置为公共、可设置并属于 Integer、Boolean 或 String 等基本类型。以后,你还可使用“属性”窗口更改 Web 性能测试插件属性。

  23. 选择**“确定”**。

    该插件将添加到**“Web 测试插件”**文件夹中。

    警告

    在运行使用插件的 Web 性能测试或负载测试时,可能会出现与下类似的错误:

    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.

    如果对任何插件进行代码更改并创建新 DLL 版本 (Version=0.0.0.0),则会引发这种情况,但插件仍会引用原来的插件版本。若要更正此问题,请执行以下步骤:

    1. 在你的 Web 性能和负载测试项目中,你将看到引用警告。移除和重新添加对插件 DLL 的引用。

    2. 从测试或适当位置移除插件,然后再重新添加。

示例

下面的代码用于创建一个自定义的 Web 性能测试插件,该插件向表示测试迭代的 WebTestContext 添加一项。

运行 Web 性能测试后,可使用此插件在 Web 性能结果查看器的**“上下文”选项卡中查看名为“TestIteratnionNumber”**的已添加项。

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;
            }
        }
    }
}

请参见

任务

如何:创建请求级插件

为 Web 性能测试编码自定义提取规则

为 Web 性能测试编码自定义验证规则

如何:创建负载测试插件

[已停用] 如何:创建编码的 Web 性能测试

参考

WebTestRequestPlugin

其他资源

为负载测试创建自定义代码和插件

如何:使用 Web 性能测试编辑器编辑现有 Web 性能测试