在我的项目中,我有一些 JavaScript 负责跟踪用户操作以优化页面布局。当用户单击某些内容(包括指向其他页面的链接)时,就会执行这些调用。
我已经用 Java 编写并基于 Selenium Webdriver 的自动化测试涵盖了整个流程。我使用 Browsermob 代理来捕获请求并验证是否将正确的数据传递给用户跟踪服务。
在某些情况下,代理不会记录命中服务的请求。发生这种情况的原因是浏览器在从跟踪服务获取响应之前导航到下一页。该请求实际上到达了目的地,我可以通过数据库的状态看到这一点。由于浏览器不会等待响应,因此代理不会注意到它们,尽管 default 5 second wait ,在这种情况下似乎被忽略了。这种情况偶尔会发生一次,导致我的测试报告出现假阴性。
我无法强制浏览器实际等待这些请求,因为我不希望跟踪阻碍用户旅程。我想做的是以某种方式配置代理来区分尚未发送的请求和中途取消的请求之间的区别。这样我就可以将此信息附加到我的报告中。
这可以使用 Browsermob 代理来实现吗?也许其他一些工具会做得更好。
尝试使用phantomjs webDriver实现,我们不需要启动jetty代理服务器,我们可以获取所有请求,即使是那些没有响应的请求。
我是一名优秀的程序员,十分优秀!