1

我想用 Java 捕获来自 Web Driver 的所有网络调用。我没有做任何 UI 测试,只是测试 JS 执行以及一些网络调用的请求和响应。

我尝试按照大多数论坛中的建议使用 Browser Mob,但我需要它在所有浏览器中都能正常工作。它与 Firefox 完美配合,但我遇到了其他一些问题。Safari 驱动程序不支持代理功能。

我不想使用 Fiddler,因为它涉及调用和存储调用的一些手动步骤。然而,作为代码内代理的 Browser Mob 可以以更流畅的方式集成。

我还尝试使用 Selenium 独立服务器包中包含的类 RC 包。但是,我在跨域中有一些 HTTPS 调用和一些嵌套的 iframe。我对一些跨域 POST 调用特别感兴趣,但效果并不好。此外,人们一直说不建议使用该软件包。

所以,我有一个解决方案,我们可以使用在机器上运行的独立代理服务器。使用主机条目,我们将指向 Web Driver 来访问代理而不是实际的服务器。代理将记录所有传入呼叫并将它们路由到实际的服务器主机。稍后,我可以向代理发出请求,该代理将返回它截获的所有调用。我不确定它是否仍然称为代理或路由器。

我遇到了 TCPmon,但它不再受支持。有谁知道一些可以在 Unix 系统或任何替代解决方案上运行的类似工具?

4

1 回答 1

0

我们修改了 Fiddler 规则脚本以包含一个新的 exec 操作。如果您使用他们的本机脚本编辑器,它还提供自动完成功能,我们可以轻松地绕过它。语法类似于 JavaScript。Fiddler 包附带一个 ExecActions.exe,可用于使用命令提示符将控制台参数传递给正在运行的 Fiddler 实例。我们编写的代码处理了 Fiddler 捕获的所有会话,并将其写入自定义 JSON 格式的文件,然后使用 GSON 对其进行反序列化。如果您想了解更多详细信息,请告诉我。

于 2014-03-31T06:11:56.123 回答