当前位置: 首页 > 知识库问答 >
问题:

空手道中如何在多个环境中一次运行相同的功能

魏煜祺
2023-03-14

我有五个不同的URLendpoint(环境)用于生产和QA,我需要在一次运行中在所有这些生产环境中执行相同的特性,并在一个cucumber报告中得到结果-(在TestNG中,我将每个环境作为参数传递到单独的XML文件中,然后使用一个公共的TestNG.XML文件,该文件包含所有这些不同环境的XML)。

我如何在Karate-config文件中管理这个?

我有以下生产环境ProdV1、ProdV2、ProdV3和PRODV4。

    {
   "prod":{
      "endpoint_urls":{
         "ProdV1":"https://production1.com/prod/ProdV1",
         "ProdV2":"https://production2.com/prod/ProdV2"
         "ProdV3":"https://production.com/prod/ProdV3",
         "ProdV4":"https://production.com/prod/ProdV4"
      }
   },
   "uat":{
      "endpoint_urls":{
         "UatV1":"https://uat.abc.com/uat1/home-sec-uri",
         "Uatv2":"https://uat.abc.com/uat2/home-res-uri"
      }
   }
}

使用命令行,我知道我们可以通过命令'mvn clean-dtest=testrunner-dcucumber.options=“--tags”dprovenv=prodv1'运行单个环境。但我的问题是如何在一次运行中一起在所有这些生产环境ProdV1、ProdV2、ProdV3和ProdV4上运行。我们需要使用for-loop吗?或者还有别的办法吗?

共有1个答案

李兴为
2023-03-14

如果您一直在运行它们,这就是数据驱动测试:https://github.com/intuit/karate#data-drived-tests

或者有许多方法可以循环一个数据集:https://github.com/intuit/karate#data-drivened-features

如果您希望灵活性而不运行其中的一些,请使用标签:https://github.com/intuit/karate#tags

最后,还有一些选项可以在karate-config.js中管理要循环的数据集:https://stackoverflow.com/A/49693808/143475

 类似资料: