当 运行 时,Web 测试失败并出现“404 Not Found”错误

Web test fails with "404 Not Found" errors when it is run

我们正在对 Angular Java 使用 Visual Studio 2013 ultimate 开发的 Web 应用程序进行性能和负载测试。

我们的方法:

  1. 记录Web测试

  2. 回放网络测试

  3. 进行关联和参数化等

我们现在面临的问题是

  1. 当我们在web测试中记录输入用户名和密码的登录场景时,我们无法找到表单参数。

  2. 虽然 运行 网络测试我们收到一些文件的 HTTP 状态 404 错误,它们是:

    • glyphicons-halflings-regular.eot

    • fonts/glyphicons-halflings-regular.woff

    • glyphicons-halflings-regular.ttf

我们已尝试通过以下步骤解决上述错误

  1. 我们检查了每个请求的 Parse Dependents 请求,并解析了依赖项和相应的请求,反之亦然。

但是上述文件的 HTTP 状态 404 错误 没有得到解决。当我们回放我们的网络测试时它显示相同的错误。

那么谁能帮助我们解决 运行 webtest 时的这个错误。

使用以下内容将此添加到您的 web.xml 文件中:

<mime-mapping> 
    <extension>woff</extension>
    <mime-type>application/x-font-woff</mime-type> 
</mime-mapping>
<mime-mapping> 
    <extension>eof</extension>
    <mime-type>application/vnd.ms-fontobject</mime-type> 
</mime-mapping>
<mime-mapping> 
    <extension>ttf</extension>
    <mime-type>application/x-font-ttf</mime-type> 
</mime-mapping>

一种选择是在相关请求发出之前丢弃它们。您可以创建插件来删除这些依赖请求。下面是一个用于查找和删除请求的基本插件。这可以很容易地扩展到做其他比较,例如 r.Url.Contains(...)

public class WebTestDependentFilter : WebTestPlugin
{
    public string EndsWithString { 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 above collects requests to remove.

        foreach (WebTestRequest r in e.Request.DependentRequests)
        {
            if ( r.Url.EndsWith(EndsWithString))
            {
                depsToRemove.Add(r);
                e.WebTest.AddCommentToResult(string.Format(
                   "Dependant request ending with \"{0}\" removed : {1}",
                   EndsWithString, r.Url));
            }
        }

        foreach (WebTestRequest r in depsToRemove)
        {
            e.Request.DependentRequests.Remove(r);
        }
    }
}

此插件基于 Visual Studio Performance Testing Quick Reference Guide (Version 3.6).

第 189 页描述的代码

另一种可能性是将显式依赖请求添加到这些文件的 Web 测试中,并将 预期的 HTTP 状态代码 属性 设置为 404

插件方式比较快捷简单。它的缺点是它减少了服务器和网络的负载,因为请求没有被发送。第二种方法保留了请求,因此可能被认为是更现实的性能测试。

无论采取哪种方式,您都可能会向客户报告问题文件,因为它们似乎表明网站存在故障。