VS2013,我有负载测试。我希望能够在各种环境中运行此负载测试,例如dev,staging,production。我希望能够在运行时传递一些特定于环境的信息,例如服务器URL,登录信息等。所以我在考虑配置或上下文参数。我可以找到有关如何添加上下文参数(https://msdn.microsoft.com/en-us/library/ff406971(v=vs.120).aspx)的大量信息,但没有关于如何访问所述参数的信息。有人能指出我正确的方向吗?上下文参数是否适合工作?
答案 0 :(得分:1)
我最好能够为VS负载测试添加“配置”是使用上下文参数。为此,您需要:
此类将添加编码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]);
}
}
}
}
编译项目并将插件添加到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;
}
}
答案 1 :(得分:1)
在VS 2015中,我认为在这方面没有太大的不同,所有负载测试上下文条目在C#到WebTest.Context
中可用,并且不需要通过显式添加一个插件。在加载测试插件中,您还可以通过LoadTest.Context
访问负载测试上下文。
在调查这些类型的问题时,我发现调试测试非常宝贵。除Run之外,Load Tests,Web Tests(* .webtest)和Coded Web Tests(通过上下文菜单)都支持Debug操作。这将尊重您的断点,并允许您围绕WebTest
实例的所有成员。如果您没有使用编码网络测试,则必须在某处放置C#代码来设置断点,例如通过自定义插件,提取器等
答案 2 :(得分:0)
您提供的链接包含
字样...如果负载测试中的Web性能测试在负载测试中使用相同的上下文参数名称作为上下文参数,则负载测试中的上下文参数将覆盖Web性能测试中使用的上下文参数
可以在Web测试中的许多位置使用上下文参数,然后将其括在双花括号中。例如,上下文参数中的值,例如MyContextParameter
,可以在URL或查询字符串等中使用,样式{{MyContextParameter}}
也是some text {{MyContextParameter}} and more text
。
可以使用e.WebTest.Context
字段在Web测试插件或Web测试请求插件中读取上下文参数,其中e
是...EventArgs
参数。