更新:2007 年 11 月
可以创建负载测试插件,以便在负载测试运行过程中的不同时间运行代码。可以创建插件来扩展或修改负载测试的内置功能。例如,可以编写负载测试插件代码,以便在负载测试运行过程中设置或修改负载测试模式。若要执行此操作,必须创建一个继承 ILoadTestPlugin 接口的类。此类必须实现此接口的 Initialize 方法。有关更多信息,请参见 ILoadTestPlugin。
| .gif) 说明: | 
|---|
| 还可以创建 Web 测试插件。有关更多信息,请参见如何:创建 Web 测试插件。 | 
使用 C# 创建负载测试插件
- 打开一个包含 Web 测试的测试项目。 - 有关更多信息,请参见如何:创建测试项目。 
- 向该测试项目中添加一个负载测试,并对其进行配置以运行 Web 测试。 - 有关更多信息,请参见如何:启动负载测试向导。 
- 向测试解决方案中添加一个 C# 类库项目。 
- 在类库项目中添加对 Microsoft.VisualStudio.QualityTools.LoadTestFramework DLL 的引用。 
- 在类库项目中的类文件中,为 Microsoft.VisualStudio.TestTools.LoadTesting 命名空间添加 using 语句。 
- 为在类库项目中创建的类实现 ILoadTestPlugin 接口。有关示例实现,请参见下面的“示例”部分。 
- 在该测试项目中,右击并选择“添加引用”。从“项目”选项卡中,选择类库项目。单击“确定”。 
- 打开负载测试并选择负载测试的顶级节点。按 F4 以显示“属性”窗口。现在可以通过单击省略号 (…) 来设置负载测试插件的属性。在对话框中选择类。 
示例
下面的代码演示在 LoadTestFinished 事件发生后运行自定义代码的负载测试插件。如果此代码在测试 rig 中运行,并且该测试 rig 没有本地主机 SMTP 服务,则负载测试将保持“正在进行中”状态,同时将打开一个消息框。
using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;
namespace LoadTestPluginTest
{
    public class MyLoadTestPlugin : ILoadTestPlugin
    {
        LoadTest myLoadTest;
        public void Initialize(LoadTest loadTest)
        {
            myLoadTest = loadTest;
            myLoadTest.LoadTestFinished += new
                EventHandler(myLoadTest_LoadTestFinished);
        }
        void myLoadTest_LoadTestFinished(object sender, EventArgs e)
        {
            try
            {
                // place custom code here
                MailAddress MyAddress = new MailAddress("someone@example.com");
                MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
                MyMail.Subject = "Load Test Finished -- Admin Email";
                MyMail.Body = ((LoadTest)sender).Name + " has finished.";
                SmtpClient MySmtpClient = new SmtpClient("localhost");
                MySmtpClient.Send(MyMail);
            }
            catch (SmtpException ex)
            {
                MessageBox.Show(ex.InnerException.Message +
                    ".\r\nMake sure you have a valid SMTP.", "LoadTestPlugin");
            }
        }
    }
} 
有八种事件与负载测试相关联,且可在负载测试插件中进行处理,以使用负载测试运行自定义代码。以下是事件的列表,这些事件提供对负载测试运行的不同时间段的访问:
- HeartBeat()