javascript - 监控 Chrome 网络流量(XHR 数据包)

标签 javascript google-chrome networking phantomjs protractor

我有一个网络应用程序要测试。我进行了一个使用 protractorJS 的测试,点击不同的按钮。 某些按钮确实会触发 POST 请求,并且 Web 应用程序将从那时起等待答案。最多可能需要 30 或 40 秒才能得到答案。如果我查看 Chrome 开发人员工具,我会发现 Web 应用程序每 2 秒发送一次 GET 数据包来获取状态。状态可以是等待失败成功

我现在的问题是: 我如何监视网络流量并过滤它们,以了解成功失败状态数据包何时进入? 我找到了 PhantomJS Network Monitoring .

基本上,我想在使用 Protractor 自动单击按钮后调用一个函数,该函数应该检查传入的每个数据包,并在读取状态为成功时停止。如果花费的时间超过 60 或 70 秒,该函数就会超时。

最佳答案

单击触发 POST 方法的按钮后,您应该开始每隔 n 秒循环监听另一个端点 (GET)(您编写的应用程序每 2 秒执行一次)。

如果状态为等待 - 继续,如果失败 - 引发异常并使测试失败,如果成功 - 通过测试或做任何你想做的事情。

循环将防止超时。

您需要考虑是否需要保护自己免受无限循环的影响,例如处理任务的 worker 停止工作。那么 GET 方法可能会返回 waiting,循环不会完成,测试也不会停止。

关于javascript - 监控 Chrome 网络流量(XHR 数据包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949573/

相关文章:

android - 如何在 GPS 和网络提供商之间切换?

java - 为什么连接终止时不抛出异常?

javascript - AngularJS观察div大小

java - Spring MVC 中的选择框看起来是空的

javascript - 如何让我的 chrome 扩展程序记住拨动开关或其他操作?

css - Safari/Chrome 空白 :nowrap text over run

javascript - setBadgeText chrome 扩展丢失计数

c++ - 如何通过将每个命令分配给线程来在 C++ 中同时执行 linux 系统命令?

javascript - 为 Backbone.Stickit.js 绑定(bind)设置全局 setOptions

javascript - 非缓存的 js 脚本是否附加到 ajax-get 请求的主文件中?