在使用量角器进行 e2e 测试时记录 xhr 请求
Logging xhr requests while doing e2e-tests with protractor
我正在为前端使用 AngularJS 编写的应用程序进行 e2e 测试,这些测试通常涉及填写表单,将数据发送到后端,然后更新页面并确保数据持续存在。测试是用量角器写的。
其中一个测试失败了,不一致而且没有明显的原因,所以我想获得尽可能多的调试信息。所以我一直想知道是否有可能记录我的前端在相关测试期间发送到后端的 xhr POST 请求,或者更好的是,浏览器发送的数据是否可以从量角器中捕获和检查?也许,使用 browser
对象?我用谷歌搜索了又搜索,但没有成功。
是的,我知道 e2e 测试仅用于与界面交互,ajax 请求对于此类测试来说太低级了。是的,也许将整个后端存根并只测试前端会好得多。但请幽默一下。在使用量角器进行 e2e 测试期间,是否可以获取有关浏览器向服务器发布的内容的信息?
量角器将 webdriverjs API 用于 "drive" 浏览器,因此它无法访问比任何其他 Selenium webdriver 应用程序更多的信息。请参阅此处的文档:http://docs.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations
除了用于控制浏览器(添加 cookie、打开新选项卡)的一些 API 之外,Protractor 和 WebdriverJS 中的大部分功能来自 JavaScript 的 运行 片段浏览器(例如,检查 DOM)。所以,我认为这些都不符合拦截浏览器和服务器之间通信的条件。
我认为您使用 Protractor infrastructure for injecting code/modules into the app start 可能会很幸运(这是我能找到的有关此功能的最佳文档)。您应该能够注入一个模块,该模块可以插入 $http
调用并在它们运行时记录它们(或者,当然,完全模拟它们)。
我正在为前端使用 AngularJS 编写的应用程序进行 e2e 测试,这些测试通常涉及填写表单,将数据发送到后端,然后更新页面并确保数据持续存在。测试是用量角器写的。
其中一个测试失败了,不一致而且没有明显的原因,所以我想获得尽可能多的调试信息。所以我一直想知道是否有可能记录我的前端在相关测试期间发送到后端的 xhr POST 请求,或者更好的是,浏览器发送的数据是否可以从量角器中捕获和检查?也许,使用 browser
对象?我用谷歌搜索了又搜索,但没有成功。
是的,我知道 e2e 测试仅用于与界面交互,ajax 请求对于此类测试来说太低级了。是的,也许将整个后端存根并只测试前端会好得多。但请幽默一下。在使用量角器进行 e2e 测试期间,是否可以获取有关浏览器向服务器发布的内容的信息?
量角器将 webdriverjs API 用于 "drive" 浏览器,因此它无法访问比任何其他 Selenium webdriver 应用程序更多的信息。请参阅此处的文档:http://docs.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations
除了用于控制浏览器(添加 cookie、打开新选项卡)的一些 API 之外,Protractor 和 WebdriverJS 中的大部分功能来自 JavaScript 的 运行 片段浏览器(例如,检查 DOM)。所以,我认为这些都不符合拦截浏览器和服务器之间通信的条件。
我认为您使用 Protractor infrastructure for injecting code/modules into the app start 可能会很幸运(这是我能找到的有关此功能的最佳文档)。您应该能够注入一个模块,该模块可以插入 $http
调用并在它们运行时记录它们(或者,当然,完全模拟它们)。