如何设计数据驱动的依赖场景测试?
How to design data driven dependent scenarios testing?
我读过它不是编写依赖测试场景的最佳实践。
但是,如果应用程序是高度数据驱动的并且操作(创建、多个更新流、逻辑删除)数据怎么办。基本上,我们要最小化:
- 测试每个相关场景的数据创建(例如更新需要先创建数据)
- 重新执行步骤
- 总体测试套件执行时间
问题:为了控制线程的执行,我可以扩展处理@parallel=false 的空手道核心类 并添加考虑'Depends on Scenario' 的自定义代码吗?有better/alternate设计吗?请提出建议。
示例:
- 场景 1:创建 T1、T2 [并行]
- 场景 2:创建 T3 [并行]
- 场景 3:创建更新的 R1(T1 和 T2 之间的关系)
T1, T2 [顺序:等到 1]
- 场景 4:创建更新的 R2(T1 和 T3 之间的关系)
T1, T3 [顺序:等到 1,2]
- 场景 5:删除更新 T1、T2 的 R1 [顺序:等到
1,3]
- 场景 6:删除 T1,删除 R1、R2 [顺序:等到
1,4,5]
没有你必须要的“魔法”:
a) 编写在开始时设置数据的“流程”(这就是 Background
的用途)并测试所有预期条件
b) 编写“智能”且不受数据库起始状态影响的测试。例如,执行 GET,查看已有多少客户,然后计算预期数量。但这可能会受到并行线程的影响,除非每个线程都设计用于处理一组不同的客户(按组织划分)
作为提醒,请阅读此内容:https://github.com/intuit/karate#script-structure
我读过它不是编写依赖测试场景的最佳实践。 但是,如果应用程序是高度数据驱动的并且操作(创建、多个更新流、逻辑删除)数据怎么办。基本上,我们要最小化:
- 测试每个相关场景的数据创建(例如更新需要先创建数据)
- 重新执行步骤
- 总体测试套件执行时间
问题:为了控制线程的执行,我可以扩展处理@parallel=false 的空手道核心类 并添加考虑'Depends on Scenario' 的自定义代码吗?有better/alternate设计吗?请提出建议。
示例:
- 场景 1:创建 T1、T2 [并行]
- 场景 2:创建 T3 [并行]
- 场景 3:创建更新的 R1(T1 和 T2 之间的关系) T1, T2 [顺序:等到 1]
- 场景 4:创建更新的 R2(T1 和 T3 之间的关系) T1, T3 [顺序:等到 1,2]
- 场景 5:删除更新 T1、T2 的 R1 [顺序:等到 1,3]
- 场景 6:删除 T1,删除 R1、R2 [顺序:等到 1,4,5]
没有你必须要的“魔法”:
a) 编写在开始时设置数据的“流程”(这就是 Background
的用途)并测试所有预期条件
b) 编写“智能”且不受数据库起始状态影响的测试。例如,执行 GET,查看已有多少客户,然后计算预期数量。但这可能会受到并行线程的影响,除非每个线程都设计用于处理一组不同的客户(按组织划分)
作为提醒,请阅读此内容:https://github.com/intuit/karate#script-structure