当 运行 时,Web 测试失败并出现“404 Not Found”错误
Web test fails with "404 Not Found" errors when it is run
我们正在对 Angular Java 使用 Visual Studio 2013 ultimate 开发的 Web 应用程序进行性能和负载测试。
我们的方法:
记录Web测试
回放网络测试
进行关联和参数化等
我们现在面临的问题是
当我们在web测试中记录输入用户名和密码的登录场景时,我们无法找到表单参数。
虽然 运行 网络测试我们收到一些文件的 HTTP 状态 404 错误,它们是:
glyphicons-halflings-regular.eot
fonts/glyphicons-halflings-regular.woff
glyphicons-halflings-regular.ttf
我们已尝试通过以下步骤解决上述错误
- 我们检查了每个请求的 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
。
插件方式比较快捷简单。它的缺点是它减少了服务器和网络的负载,因为请求没有被发送。第二种方法保留了请求,因此可能被认为是更现实的性能测试。
无论采取哪种方式,您都可能会向客户报告问题文件,因为它们似乎表明网站存在故障。
我们正在对 Angular Java 使用 Visual Studio 2013 ultimate 开发的 Web 应用程序进行性能和负载测试。
我们的方法:
记录Web测试
回放网络测试
进行关联和参数化等
我们现在面临的问题是
当我们在web测试中记录输入用户名和密码的登录场景时,我们无法找到表单参数。
虽然 运行 网络测试我们收到一些文件的 HTTP 状态 404 错误,它们是:
glyphicons-halflings-regular.eot
fonts/glyphicons-halflings-regular.woff
glyphicons-halflings-regular.ttf
我们已尝试通过以下步骤解决上述错误
- 我们检查了每个请求的 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
。
插件方式比较快捷简单。它的缺点是它减少了服务器和网络的负载,因为请求没有被发送。第二种方法保留了请求,因此可能被认为是更现实的性能测试。
无论采取哪种方式,您都可能会向客户报告问题文件,因为它们似乎表明网站存在故障。