抑制单个请求的“响应URL”验证
问题描述:
如何安排Visual Studio Web性能测试中的响应URL的验证规则可以针对单个请求禁用?抑制单个请求的“响应URL”验证
删除验证规则很简单,但这意味着对测试中的任何请求都没有响应url验证。这些验证对于保留大多数请求非常有用,因为它们提供了简单的验证,即测试没有做错误的事情。但是,某些请求的响应URL太复杂或太不可预测,无法在测试项目的时间限制内创建。 Web测试中每个请求的属性都包含响应url。如果这些属性也包含一个用于检查的布尔属性或者不检查响应url,那将会很有用。每个请求上还有其他几个布尔属性。
答
自定义验证规则can be written和一个规则可以从另一个派生。这让我们创建一个规则,检查是否需要响应url验证,或者应该跳过特定请求。
[System.ComponentModel.Description(
"Validate response URLs. "
+ "Calls standard validation rule except when the 'Response URL' property is '-', "
+ "in which case no validation is done.")]
public class ResponseUrlWithSkip : ValidateResponseUrl
{
public override void Validate(object sender, ValidationEventArgs e)
{
if (string.IsNullOrEmpty(e.Request.ExpectedResponseUrl)
|| e.Request.ExpectedResponseUrl != "-")
{
base.Validate(sender, e);
}
else
{
e.WebTest.AddCommentToResult("Response URL validation skipped.");
}
}
}
上面的代码检查响应url属性是否是一个连字符(即-
),并且如果它不是那么标准响应URL规则被调用。 hyplen的选择没有什么魔力。可以使用其他字符串,该字符串可以作为验证规则的属性传递,方法是添加下面的声明并测试其值而不是"-"
。
public string Skip { get; set; }
要使用此验证规则,请从Web测试中删除正常规则并添加此新规则的调用。