2014-02-18 88 views
1

我想捕获来自Java中的网络驱动程序的所有网络调用。我没有做任何UI测试,只是测试JS执行以及某些网络调用的请求和响应。跨所有浏览器捕获网络驱动程序网络流量

我尝试使用Browser Mob,正如在大多数论坛中所建议的,但我需要它在所有浏览器中工作。它完美地与Firefox一起工作,但我与其他人面临一些问题。 Safari驱动程序不支持代理功能。

我不想使用Fiddler,因为它涉及调用和存储调用的一些手动步骤。而Browser Mob作为代码内代理可以以更平滑的方式进行整合。

我也试过使用Selenium独立服务器软件包中包含的类似RC的软件包。但是,我在跨域中有一些HTTPS调用和一些嵌套的iframe。我特别感兴趣的是一些跨域POST调用,并且它不能很好地工作。另外,人们总是说不建议使用该软件包。

所以,我有一个解决方案,我们可以使用在机器上运行的独立代理服务器。使用主机条目,我们将指向Web Driver来代理实际的服务器。该代理将记录所有来电并将其路由到实际的服务器主机。之后,我可以向代理发送请求,它会将我截获的所有呼叫都返回给我。我不确定它是否仍被称为代理或路由器。

我遇到了TCPmon,但它不再被支持。有没有人知道一些类似的工具可以运行在Unix系统或其他解决方案上?

回答

0

我们修改了Fiddler规则脚本以包含新的exec操作。如果你使用他们的本地脚本编辑器,它也提供了自动完成的功能,我们很容易解决它。其语法与JavaScript相似。 Fiddler软件包附带了一个ExecActions.exe,可以使用命令提示符将控制台参数传递给正在运行的Fiddler实例。 我们编写的代码处理了Fiddler捕获的所有会话,并以自定义JSON格式将其写入文件,并在稍后使用GSON对其进行反序列化。 请让我知道,如果你想了解更多的细节。