Javascript 在Cypress中测试复杂用户流的最佳方法?

Javascript 在Cypress中测试复杂用户流的最佳方法?,javascript,cypress,Javascript,Cypress,我正在Cypress中为一个应用程序创建一个端到端测试解决方案,该应用程序基本上具有以下流程: 管理员创建用户->用户验证其帐户->用户登录->用户能够执行各种操作并经历一个漫长的流程 我以前在cypress中创建了长自定义命令来处理这个问题(例如cy.login、cy.createUser()),但这看起来并不好,我觉得随着我添加更多测试,这将变得更难管理 所以我的问题是,是否有一个推荐的模式,我应该用来生成用于在Cypress中进行测试的用户流 我想将动态数据引入到用户进入的流程中(这涉及到

我正在Cypress中为一个应用程序创建一个端到端测试解决方案,该应用程序基本上具有以下流程:

管理员创建用户->用户验证其帐户->用户登录->用户能够执行各种操作并经历一个漫长的流程

我以前在cypress中创建了长自定义命令来处理这个问题(例如cy.login、cy.createUser()),但这看起来并不好,我觉得随着我添加更多测试,这将变得更难管理

所以我的问题是,是否有一个推荐的模式,我应该用来生成用于在Cypress中进行测试的用户流


我想将动态数据引入到用户进入的流程中(这涉及到大量的表单填充)。但不确定实现这一点的最佳方法。

首先,我相信如果您遵循页面对象模型、数据驱动测试等概念,您将能够找到适合您的最佳解决方案。 我会告诉你我设计它的方法,但这不是唯一的方法。我建议您这样做,因为有许多用户流,并且存在相互依赖的用户流。如果我们采取这些措施

  • 管理员创建用户
  • 用户验证其帐户
  • 用户登录
  • 用户能够执行各种操作..等
这些可以分类为不同的测试场景(您可以将页面作为测试场景)。这样做的原因是,这将使您更容易管理特定于页面的测试

然后,您可以分别存储每个页面的标识符,以便在需要时调用它们。(了解有关页面对象模型的更多信息)

然后我更喜欢管理单独的JSON文件来存储测试场景 例如userloginda.jsom

{
"Valid Login":{"UN":"UserName", "Pass":"Password","Error":false},
"InValid Login":{"UN":"UserName", "Pass":"Password","Error":false},
}
稍后,您可以循环遍历这些键,并将它们作为测试用例处理。在集成测试文件中,您可以使用键自动生成测试用例。因此,当数据增长时,测试也会增长

然后,在不使用自定义函数的情况下,当您想要生成测试的先决条件时,可以使用选定的有效数据集。例如,对于用户登录,有效注册是一个先决条件

我已经提到了一个更大计划的基本想法,你可以从中添加和删除点,并根据你的喜好定制你的测试

Ps:如果我有任何拼写错误,请容忍我,因为我用一只手来编码,因为我的右手错位了。
干杯

这可能有助于进一步进行或获得想法。