我创建了一个非常简单的webtest,它只有一个简单的URL请求:https://www.domain.com/
。
当我运行测试时,虽然我收到了失败并且显示此消息:
请求失败:URI无效:URI的格式不可能 确定。
但是“响应”选项卡具有包含大量HTML的正确响应HTTP/1.1 200 OK
。这是Visual Studio中的一个错误或者有什么方法可以确保它不会将正确的请求视为失败吗?
P.S。 我也注意到请求需要10到15秒,即使RequestTime(视觉工作室显示)真的小于1。
答案 0 :(得分:7)
大多数网页的HTML都需要下载其他文件的集合,例如图像,JSON,CSS,JavaScript等。这些是相关请求。 Visual Studio检查HTML以查找依赖请求集。它们都应该是有效的URL。提取这些依赖请求的Visual Studio代码比许多浏览器更不宽容。 Visual Studio要求它们是有效的URL。许多真正的浏览器都在努力应对糟糕的HTML,以便能够显示出合理的东西。
异常的原因可能是响应中格式错误的HTML。某些浏览器具有开发人员工具,可以描述下载的html中发现的错误。检查这些开发人员设施对页面上的错误的评价;可能值得尝试几种浏览器来获得对页面的不同评估。
一个示例:格式错误的base tag可能会导致您报告的异常。
在查看成功请求的Web测试执行日志时,您将看到列出的相关请求。似乎Visual Studio"信任"这些请求形成有效的URL,即它们格式正确。您的测试的网址格式错误。如果您提供了格式正确的URL但没有资源,那么您将看到依赖请求并看到它出现404错误。这是一个边缘情况,你可能会争辩说Visual Studio应该以不同的方式报告它。
通过" web测试执行日志"我指的是显示Web测试结果的方式。这是带有列标题的表格形式:请求+状态+总时间+请求时间+请求字节+响应字节。下面是标签显示所选项目的详细信息,标签标记为Web浏览器+请求+响应+上下文+详细信息。如果单击"请求"左侧的小三角形;列,您将看到重定向和相关请求。 (请注意,在负载测试中运行的Web测试日志会省略相关的请求详细信息。)
答案 1 :(得分:3)
为该特定呼叫设置“Parse Dependent Requests”为False有帮助。
答案 2 :(得分:0)
我设法在VS调试器中捕获了无效的URI值:
系统会要求您提供您没有的源文件,但是可以。 “本地调试器”窗口显示错误的URI。根据调试符号的可用性,您可能必须重新运行测试几次(直到所有符号加载完毕)。
更新:
AdrianHHH是正确的-问题出在“ base”标签中。看起来像这样:
<base href='/foo/'>
在HTML4中,这是非法的,但在HTML5中,这是有效的结构。但是VS2013 Webtest引擎在这里失败。