我正在使用浏览器自动化来测试网站,但我需要验证来自浏览器的 HTTP 请求(即图像、外部脚本、XmlHttpRequest 对象)。有没有办法以编程方式实例化浏览器使用的代理以查看其发送的内容?
我已经在使用 Fiddler 来查看流量,但我想要一些可以在持续构建集成中使用的无 UI 的东西。
我正在使用浏览器自动化来测试网站,但我需要验证来自浏览器的 HTTP 请求(即图像、外部脚本、XmlHttpRequest 对象)。有没有办法以编程方式实例化浏览器使用的代理以查看其发送的内容?
我已经在使用 Fiddler 来查看流量,但我想要一些可以在持续构建集成中使用的无 UI 的东西。
我曾简要研究过同一件事并考虑了两种解决方案(但尚未尝试过)。
我的第一个建议是使用 HttpListener 类(可能还有 Webclient 或其他 System.Net http 相关类将请求重新发布到您的应用程序)作为 WebBrowser 测试调用的代理。我没有使用 HttpListener 的经验,但它看起来是一种将调用代理到您的应用程序的简单且有前途的方法。
我的第二个建议是做 Fiddler 所做的事情:在您的测试机器上接入 WinINET Http 堆栈以充当代理(使用某种过滤器将其范围缩小到您的 WebBrowser 的调用)。不幸的是,我能找到的最好的例子是 Fiddler 本身,而我知道获取代码的唯一方法是 Reflector。可能以另一种方式访问 Fiddler 代理代码,但我没有时间完全调查此路径。
HTH!,理查德