VS2015 WebTest重跑时.css依赖请求404,无法找到该依赖请求
遇到这种明明测试结果里显示有依赖请求失败,但在编辑器里找不到对应请求的情况,我通常会从这几个方向入手解决:
检查全局依赖解析设置
先看看Web测试根节点的全局属性:右键点击你的Web测试→属性,查看Parse Dependent Requests的状态。如果这个选项是开启的,可能会自动解析主请求的依赖,但录制时因为页面加载延迟、异步加载等原因没捕获到这个CSS请求,重跑时却触发了。可以临时关闭这个选项,再跑测试确认是否还会出现该404错误。直接编辑WebTest的XML源码
VS的图形化编辑器有时候会隐藏自动生成的依赖请求,这时候直接编辑.webtest文件会更直接。用记事本或VS的XML编辑器打开测试文件,搜索错误URL里的关键词(比如Global_CSS.css),大概率能找到对应的<Request>节点:- 要是想忽略这个404,就在该节点里添加
<ExpectedHttpStatusCode>404</ExpectedHttpStatusCode>; - 要是想阻止解析这个依赖对应的主请求,找到主请求的节点,修改或添加
<ParseDependentRequests>False</ParseDependentRequests>。
- 要是想忽略这个404,就在该节点里添加
手动添加请求并配置预期状态
如果XML里也找不到这个请求,说明录制时确实没捕获到它(比如CSS是JS动态加载的,录制时没触发加载逻辑)。这时候可以手动在Web测试里新增一个GET请求,填入那个404的URL,然后在请求属性里把Expected Http Status Code设为404,这样测试就会把这个404判定为预期结果,不会报错。排查URL编码问题
注意到错误URL里的Style%20Guides是空格的URL编码,你可以检查服务器端的实际文件路径是否真的包含空格,或者是不是录制时的编码错误导致请求路径不对。如果是编码问题,手动修正URL(比如把Style%20Guides改成Style+Guides),再测试看看能否正常访问。
内容的提问来源于stack exchange,提问作者Reema

