C# 如何访问跑步设置->;继承自WebTest的类中代码的上下文参数

C# 如何访问跑步设置->;继承自WebTest的类中代码的上下文参数,c#,visual-studio-2013,performance-testing,C#,Visual Studio 2013,Performance Testing,VS2013,我有一个负载测试。我希望能够在各种环境中运行此负载测试,例如开发、登台、生产。我希望能够在运行时传递一些特定于环境的信息,例如服务器url、登录信息等。所以我考虑的是配置或上下文参数。我可以找到大量关于如何添加上下文参数()的信息,但没有找到关于如何访问该参数的信息。有人能给我指出正确的方向吗?上下文参数是工作的正确工具吗?我能想到的将“配置”添加到VS负载测试的最佳方法是使用上下文参数。为此,您需要: 添加上下文参数(右键单击所需的运行设置) 然后,为了能够通过编码访问这些参数

VS2013,我有一个负载测试。我希望能够在各种环境中运行此负载测试,例如开发、登台、生产。我希望能够在运行时传递一些特定于环境的信息,例如服务器url、登录信息等。所以我考虑的是配置或上下文参数。我可以找到大量关于如何添加上下文参数()的信息,但没有找到关于如何访问该参数的信息。有人能给我指出正确的方向吗?上下文参数是工作的正确工具吗?

我能想到的将“配置”添加到VS负载测试的最佳方法是使用上下文参数。为此,您需要:

  • 添加上下文参数(右键单击所需的运行设置)
  • 然后,为了能够通过编码访问这些参数 WebTests,您需要创建一个负载测试插件类(参见下面的插件类)
  • 最后,您需要将此插件添加到负载测试(右键单击负载测试的根节点)
  • 此类将在编码的WebTest中添加所有活动运行设置的上下文参数

    using System;
    using Microsoft.VisualStudio.TestTools.LoadTesting;
    
    namespace VerificationLoadTest
    {
        public class ContextParameterLoadTestPlugin : ILoadTestPlugin
        {
            LoadTest LoadTest;
            public void Initialize(LoadTest loadTest)
            {
                this.LoadTest = loadTest;
                this.LoadTest.TestStarting += new EventHandler<TestStartingEventArgs>(TestStarting);
            }
    
            void TestStarting(object sender, TestStartingEventArgs e)
            {
                foreach (string key in LoadTest.Context.Keys)
                {
                    e.TestContextProperties.Add(key, LoadTest.Context[key]);
                }
            }               
        }
    } 
    
    使用系统;
    使用Microsoft.VisualStudio.TestTools.LoadTesting;
    命名空间验证加载测试
    {
    公共类ContextParameterLoadTestPlugin:ILoadTestPlugin
    {
    负荷试验;负荷试验;
    公共void初始化(LoadTest LoadTest)
    {
    this.LoadTest=LoadTest;
    this.LoadTest.TestStarting+=新的EventHandler(TestStarting);
    }
    void TestStarting(对象发送方,TestStartingEventArgs e)
    {
    foreach(LoadTest.Context.Keys中的字符串键)
    {
    e、 Add(key,LoadTest.Context[key]);
    }
    }               
    }
    } 
    
    编译项目并将插件添加到loadtest(上面的步骤3)后,可以如下访问参数:

    public class ContextParameterTest : WebTest
    {
         public override IEnumerator<WebTestRequest> GetRequestEnumerator()
         {
              var serviceUrl = this.Context[ContextParamKey].ToString();
              WebTestRequest webTestRequest = new WebTestRequest(serviceUrl);
    
              ... build your request
    
              request.PostRequest += request_PostRequest;
              yield return request;
              request = null;
         }
    }    
    
    公共类ContextParameterTest:WebTest { 公共重写IEnumerator GetRequestEnumerator() { var serviceUrl=this.Context[ContextParamKey].ToString(); WebTestRequest WebTestRequest=新的WebTestRequest(serviceUrl); …生成您的请求 request.PostRequest+=请求\u PostRequest; 退换货请求; 请求=null; } }
    在VS负载测试中添加“配置”的最佳方法是使用上下文参数。为此,您需要:

  • 添加上下文参数(右键单击所需的运行设置)
  • 然后,为了能够通过编码访问这些参数 WebTests,您需要创建一个负载测试插件类(参见下面的插件类)
  • 最后,您需要将此插件添加到负载测试(右键单击负载测试的根节点)
  • 此类将在编码的WebTest中添加所有活动运行设置的上下文参数

    using System;
    using Microsoft.VisualStudio.TestTools.LoadTesting;
    
    namespace VerificationLoadTest
    {
        public class ContextParameterLoadTestPlugin : ILoadTestPlugin
        {
            LoadTest LoadTest;
            public void Initialize(LoadTest loadTest)
            {
                this.LoadTest = loadTest;
                this.LoadTest.TestStarting += new EventHandler<TestStartingEventArgs>(TestStarting);
            }
    
            void TestStarting(object sender, TestStartingEventArgs e)
            {
                foreach (string key in LoadTest.Context.Keys)
                {
                    e.TestContextProperties.Add(key, LoadTest.Context[key]);
                }
            }               
        }
    } 
    
    使用系统;
    使用Microsoft.VisualStudio.TestTools.LoadTesting;
    命名空间验证加载测试
    {
    公共类ContextParameterLoadTestPlugin:ILoadTestPlugin
    {
    负荷试验;负荷试验;
    公共void初始化(LoadTest LoadTest)
    {
    this.LoadTest=LoadTest;
    this.LoadTest.TestStarting+=新的EventHandler(TestStarting);
    }
    void TestStarting(对象发送方,TestStartingEventArgs e)
    {
    foreach(LoadTest.Context.Keys中的字符串键)
    {
    e、 Add(key,LoadTest.Context[key]);
    }
    }               
    }
    } 
    
    编译项目并将插件添加到loadtest(上面的步骤3)后,可以如下访问参数:

    public class ContextParameterTest : WebTest
    {
         public override IEnumerator<WebTestRequest> GetRequestEnumerator()
         {
              var serviceUrl = this.Context[ContextParamKey].ToString();
              WebTestRequest webTestRequest = new WebTestRequest(serviceUrl);
    
              ... build your request
    
              request.PostRequest += request_PostRequest;
              yield return request;
              request = null;
         }
    }    
    
    公共类ContextParameterTest:WebTest { 公共重写IEnumerator GetRequestEnumerator() { var serviceUrl=this.Context[ContextParamKey].ToString(); WebTestRequest WebTestRequest=新的WebTestRequest(serviceUrl); …生成您的请求 request.PostRequest+=请求\u PostRequest; 退换货请求; 请求=null; } }
    您提供的链接包含以下文字

    。。。如果负载测试中的Web性能测试使用与负载测试中的上下文参数相同的上下文参数名称,则负载测试中的上下文参数将覆盖Web性能测试中使用的上下文参数

    上下文参数可以在web测试中的许多地方使用,方法是将上下文参数用双大括号括起来。例如,上下文参数中的值,比如说
    MyContextParameter
    ,可以在URL或查询字符串等中使用
    {{MyContextParameter}}
    样式,也可以
    一些文本{{MyContextParameter}}和更多文本


    通过使用
    e.WebTest.Context
    字段,可以在web测试插件或web测试请求插件中读取上下文参数,其中
    e
    …EventArgs
    参数。

    您提供的链接包括以下文字

    。。。如果负载测试中的Web性能测试使用与负载测试中的上下文参数相同的上下文参数名称,则负载测试中的上下文参数将覆盖Web性能测试中使用的上下文参数

    上下文参数可以在web测试中的许多地方使用,方法是将上下文参数用双大括号括起来。例如,上下文参数中的值,比如说
    MyContextParameter
    ,可以在URL或查询字符串等中使用
    {{MyContextParameter}}
    样式,也可以
    一些文本{{MyContextParameter}}和更多文本


    通过使用
    e.WebTest.Context
    字段,可以在web测试插件或web测试请求插件中读取上下文参数,其中
    e
    …EventArgs
    参数。

    在VS 2015中,我认为在这方面没有太大区别,