首页 > 解决方案 > 什么是更好的解决方案,在使用 Cucumber Java 时将测试数据保存在带有场景的功能文件或单独的文件(xml、json、yml)中?

问题描述

根据我的说法,将其与场景保持在一起更有意义,因为以下 1. 我们可以对不同的数据集使用相同的场景步骤。2. 如果我们在特征文件中指定它们,可读性也会增加。3. Cucumber 作为已经赋予的测试数据管理功能

但是在我以前的所有公司框架中,测试数据都保存在单独的文件中。

请让我知道什么是最好的方法。

标签: cucumber

解决方案


以下是决定我们是否应该使用data table/examples或外部数据文件的一些因素。

  1. 列数
  2. 数据是静态的还是动态的
  3. 数据来源

让我们讨论上述每一个。

1. 列数: 当您的列数少于 10 时,最好从特征文件中传递数据。但是超过 10 列会使场景更难阅读。列越多,阅读和维护就越复杂(容易出错)。在这种情况下,将数据保存在外部文件中会很容易。

2.数据是静态/动态: 如果您确定数据是静态的,这意味着您不必经常更改数据,那么您可以坚持使用特征文件。但是考虑一下这种情况,您的数据每次都会更改(例如:如果您要下 100 个订单,然后等待一段时间,并希望根据 OrderID 检查每个订单的状态。在这种情况下,您最好存储订单 ID ' 在外部文件中,并将它们作为其他验证功能的一部分)。

3. 数据来源 如果您确定数据将由有权访问功能文件的人员填写/更新,您可以使用功能文件。但是,考虑到测试数据将由外部团队/外部源(如数据库)填充的情况,那么最好将其分开维护,这样您可以获得文件并在有更新版本时替换它。(确保在这种情况下提供模板,以便外部团队和您在填写数据时轻松完成这项工作)。

可能还有其他情况会决定您的测试数据的正确位置,但这些是我头顶上的 3 点。


推荐阅读