我有一个网络应用程序要测试。我进行了一个使用 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/