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