1

在我的项目中,我有一些 JavaScript 负责跟踪用户操作以优化页面的布局。当用户单击某些内容(包括指向更多页面的链接)时,就会执行这些调用。

我拥有用 Java 编写并基于 Selenium Webdriver 的自动化测试所涵盖的整个流程。我正在使用 Browsermob 代理来捕获请求并验证是否将正确的数据传递给用户跟踪服务。

在某些情况下,访问服务的请求不会被代理记录。发生这种情况的原因是浏览器在从跟踪服务获得响应之前导航到下一页。请求实际上到达了目的地,我可以通过数据库的状态看到。因为浏览器不等待响应,它们碰巧没有被代理注意到,尽管默认的 5 秒等待,在这种情况下似乎被忽略了。这只会偶尔发生一次,导致我的测试报告出现假阴性。

我不能强迫浏览器实际等待这些请求,因为我不希望跟踪阻碍用户旅程。我想做的是以某种方式配置代理来区分尚未发送的请求和中途取消的请求。这样我就可以将此信息附加到我的报告中。

这可以使用 Browsermob 代理来实现吗?也许其他一些工具会做得更好。

4

1 回答 1

1

尝试使用 phantomjs webDriver 实现,我们不需要启动 jetty 代理服务器,我们可以获取所有请求,即使是那些没有响应的请求。

于 2014-04-24T18:43:59.533 回答