e2e-testing - 赛普拉斯中的页面对象模式?
问题描述
我想使用类似于 Selenium 等框架中存在的页面对象模式的工作流程。我想login.spec.js
在 my 中使用 my editSettings.spec.js
,因为它需要用户登录。
我如何在赛普拉斯实现这一目标?我可以从一个测试文件中导出一个函数以在另一个文件中使用吗?
解决方案
是的,赛普拉斯支持在您的 UI 中创建和重用操作的能力,例如以用户身份登录。
但是,赛普拉斯还允许您比用户更强大地控制浏览器的状态。
例如:我创建了一个“用户可以使用有效的用户名和密码登录”的测试——赛普拉斯导航到登录页面,输入用户字段,输入密码字段并单击“登录”按钮。页面对象模式会让您在需要用户登录的每个测试(大多数测试)上重用此操作
赛普拉斯支持这一点;但是,这比它必须要慢。导航到登录页面、输入信息、处理响应以及导航到被测页面需要花费大量时间。
相反,Cypress
的 API 允许执行以下操作:
- 使用
cy.request()
登录凭据直接访问您的服务器。这不需要您的应用程序的状态,无需输入字段,无需单击按钮或页面指令 - 您的站点使用的任何 cookie 都会自动设置,或者您可以使用响应设置 localStorage
- 将其设为自定义命令,在每次测试之前调用它,然后繁荣——您几乎立即生成了用户的状态,最重要的是无碎片
推荐阅读
- unity3d - 加载 C++ DLL 时出现 DllNotFoundException 错误
- go - 在 VS 代码中设置 golang 项目
- objective-c - 在 prepareForSegue 上获取方法参数
- angular - 关闭对话框并导航到新路线,打开一个对话框,在 Angular 4 中出现问题
- flutter - 行和列小部件的实际代码颤动
- ubuntu - lfs gcc 无法编译
- r - 重命名多个级别 - 在 R 中将“man”、“Male”、“M”更改为“male”
- performance - 从响应数据中查找随机序列号的计数并从 Jmeter 中的响应数据中查找重复数字
- c# - 将可空枚举转换为基础可空数的最简单方法
- python - diff 友好的 XML 修改工具