Karate 基于数据库查找的空手道自动化框架设计

Karate 基于数据库查找的空手道自动化框架设计,karate,Karate,我正在尝试使用空手道设计一个测试框架。我在那里面临着挑战。任何帮助或指点都将不胜感激 它是一种应用,广泛的计算涉及复杂的数学规则。一些静态参数是从数据库(MS SQL Server)获取的。这些参数的值预计每6个月的每个季度都会发生变化 我应该如何构造我的预期结果集以放入特征文件中,这样我就无法在每次数据库中的值更改时手动更改它 致以最良好的祝愿 Abhi以下是我要做的。首先,将所有“动态”内容移动到JSON文件中。例如:constants.json { "riskFactor&q

我正在尝试使用空手道设计一个测试框架。我在那里面临着挑战。任何帮助或指点都将不胜感激

它是一种应用,广泛的计算涉及复杂的数学规则。一些静态参数是从数据库(MS SQL Server)获取的。这些参数的值预计每6个月的每个季度都会发生变化

我应该如何构造我的预期结果集以放入特征文件中,这样我就无法在每次数据库中的值更改时手动更改它

致以最良好的祝愿


Abhi

以下是我要做的。首先,将所有“动态”内容移动到JSON文件中。例如:
constants.json

{
  "riskFactor": 0.5,
  "ciRatio": 2 
}
然后将其读入测试:

Background:
* def constants = read('constants.json')
然后在如下测试中使用这些值:

* def result = someCalc()
* match result = constants.riskFactor * 100 / constants.ciRatio
现在,一旦你开始工作,你需要弄清楚的就是如何从数据库中读取JSON文件。为此,请参阅:

也就是说,我强烈建议不要使用数据库,从理论上讲,这一切听起来都很好,但您只需要增加测试的复杂性和依赖性。另外,如果您要依赖“生产”数据库,这违反了一些测试原则,我已经看到许多团队落入了这个陷阱

另外,您可以将JSON中的所有键值对作为变量注入范围:

* karate.set(read('constants.json'))

这是我要做的。首先,将所有“动态”内容移动到JSON文件中。例如:
constants.json

{
  "riskFactor": 0.5,
  "ciRatio": 2 
}
然后将其读入测试:

Background:
* def constants = read('constants.json')
然后在如下测试中使用这些值:

* def result = someCalc()
* match result = constants.riskFactor * 100 / constants.ciRatio
现在,一旦你开始工作,你需要弄清楚的就是如何从数据库中读取JSON文件。为此,请参阅:

也就是说,我强烈建议不要使用数据库,从理论上讲,这一切听起来都很好,但您只需要增加测试的复杂性和依赖性。另外,如果您要依赖“生产”数据库,这违反了一些测试原则,我已经看到许多团队落入了这个陷阱

另外,您可以将JSON中的所有键值对作为变量注入范围:

* karate.set(read('constants.json'))

为什么每次在功能文件中执行该检查时,不触发db查询并获取值呢?下面是一个空手道用户db查询的例子,是的,可以尝试一下。我会举一个这样的例子,我至少有100种不同的计算:)(为什么每次你在一个功能文件中进行检查时,你不启动一个db查询并获取值呢?下面是一个来自一个空手道用户的db查询的例子,是的,可以尝试。我会举一个这样的例子,我至少有100种不同的计算:)(谢谢彼得,我至少从你的回复中得到了一些想法。让我们看看我如何最好地实施它。@Abhitanshukla酷。也看看这个:谢谢彼得,我至少从你的回复中得到了一些想法。让我们看看我如何最好地实施它。@Abhitanshukla酷。也看看这个: