在 webtest 中找不到依赖请求

Cannot find a dependent request in webtest

我在 VS2015 中用我的 webtest 记录器记录了一个测试。当我重新运行测试时,有一次它在 .css 文件的依赖 GET 请求中失败。 webtest 结果中的 url 显示类似 https://mycompany/blah/Style%20Guides/Global_CSS.css 错误是一个简单的 404 错误。 现在我转到主请求并搜索这个特定的从属请求,以便我可以将其 Parse_Dependent_Request 选项设置为 False 或将 Extected_Http_Status_Code 设置为 404,这对我来说很好。但是我无法在主请求或任何其他请求下找到这个特定的依赖请求。

我试图将所有依赖请求的所有 Parse_Dependent_Request 选项更改为 false 并了解哪个实际发送了 Get 请求,但是其中 none worked.I 做了一个从 webtest 生成代码并确实进行了页面搜索,但在 vain.Do 我如何获得请求?

许多相关请求 (DR) 在 Web 测试中并不明确。当主请求的 parse dependent requeststrue 时,Visual Studio 处理该主请求的 HTML 响应以查找 DR,并将它们添加到 DR 列表中。任何 HTML 的 DR 响应也可以被解析并将它们的 DR 添加到列表中。

处理丢失或有问题的 DR 的一种技术是 运行 修改 DR 列表的插件。下面的代码基于 Codeplex "Visual Studio Performance Testing Quick Reference Guide"(3.6 版)第 189 页的 WebTestDependentFilter。 Codeplex 文档还有很多关于网络和负载测试的其他有用信息。

public class WebTestDependentFilter : WebTestPlugin
{
    public string FilterDependentRequestsThatStartWith { get; set; }
    public string FilterDependentRequestsThatEndWith { get; set; }
    public override void PostRequest(object sender, PostRequestEventArgs e)
    {
        WebTestRequestCollection depsToRemove = new WebTestRequestCollection();
        // Note, you can't modify the collection inside a foreach, hence the second collection
        // requests to remove.
        foreach (WebTestRequest r in e.Request.DependentRequests)
        {
            if (!string.IsNullOrEmpty(FilterDependentRequestsThatStartWith))
            {
                if (r.Url.StartsWith(FilterDependentRequestsThatStartWith))
                {
                    depsToRemove.Add(r);
                }
            }
            else if (!string.IsNullOrEmpty(FilterDependentRequestsThatEndWith))
            {
                if (r.Url.EndsWith(FilterDependentRequestsThatEndWith))
                {
                    depsToRemove.Add(r);
                }
            }
        }
        foreach (WebTestRequest r in depsToRemove)
        {
            e.WebTest.AddCommentToResult(string.Format("Removing dependent: {0}", r.Url));
            e.Request.DependentRequests.Remove(r);
        }
    }
}

上面代码中的搜索条件可以很容易地修改为(例如)检查 URL.

的中间部分

另一种变体是将某些 DR 的预期响应代码设置为其他值。这可能比删除失败的 DR 更准确地进行性能测试,因为仍然需要服务器来处理请求和 return 响应。