【发布时间】:2018-11-14 01:37:28
【问题描述】:
我想使用类似于 Selenium 等框架中存在的页面对象模式的工作流程。我想在我的editSettings.spec.js 中使用我的login.spec.js,因为它需要用户登录。
如何在赛普拉斯实现这一目标?我可以从一个测试文件中导出一个函数以在另一个文件中使用吗?
【问题讨论】:
标签: e2e-testing cypress
我想使用类似于 Selenium 等框架中存在的页面对象模式的工作流程。我想在我的editSettings.spec.js 中使用我的login.spec.js,因为它需要用户登录。
如何在赛普拉斯实现这一目标?我可以从一个测试文件中导出一个函数以在另一个文件中使用吗?
【问题讨论】:
标签: e2e-testing cypress
是的,赛普拉斯支持在您的 UI 中创建和重复使用操作的功能,例如以用户身份登录。
然而,赛普拉斯还允许您比用户更强大地控制浏览器的状态。
例如:我创建了一个“用户可以使用有效的用户名和密码登录”的测试——赛普拉斯导航到登录页面,输入用户字段,输入密码字段并单击“登录”按钮. 页面对象模式会让您在每个需要用户登录的测试中重复使用此操作(大多数测试)
赛普拉斯支持这一点;但是,这比它必须的要慢。导航到登录页面、输入信息、处理响应以及导航到被测页面需要花费大量时间。
相反,Cypress 的 API 允许以下操作:
cy.request() 使用登录凭据直接访问您的服务器。这不需要您的应用的状态、无需输入字段、无需点击按钮或页面指引【讨论】:
我实际上想出了这两个示例,一个使用 JavaScript,另一个使用 Typescript。
https://github.com/antonyfuentes/cypress-typescript-page-objects https://github.com/antonyfuentes/cypress-javascript-page-objects
希望这对其他人有所帮助。
【讨论】: