禁止针对各个请求的“响应URL”验证

时间:2017-04-18 20:55:03

标签: visual-studio load-testing web-testing

如何安排针对单个请求禁用Visual Studio Web性能测试中响应URL的验证规则?

很容易删除验证规则,但这意味着对测试中的任何请求都没有响应URL验证。这些验证对于保留大多数请求很有用,因为它们提供了一个简单的验证,即测试没有做错误的事情。但是,某些请求的响应URL太复杂或太不可预测,无法在测试项目的时间限制内创建。 Web测试中每个请求的属性包括响应URL。对于这些属性来说,还包括用于检查的布尔属性或不检查响应URL是有用的;每个请求都有其他几个布尔属性。

1 个答案:

答案 0 :(得分:0)

自定义验证规则can be written和一个规则可以从另一个规则派生。这使我们可以创建一个规则来检查是否需要响应URL验证,或者应该跳过特定请求的响应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测试中删除常规规则,并添加对此新规则的调用。