首页 > 解决方案 > 任何示例都有一个 java 类实例调用一次并在具有不同特征文件的空手道的所有场景中使用

问题描述

我一直在使用空手道演示中的 DBUtils 类,我知道这个类与空手道无关。我有一个问题,例如给出的示例在每个场景中都在后台调用 DBUtlis 类,并且应该在所有功能文件背景中提及它:。

像我们配置一次并在所有场景中使用该数据库实例变量的任何东西?如果是,请举例。

彼得在以下评论后更新:

配置: 在此处输入图像描述

主要功能文件: 在此处输入图像描述

在另一个功能文件中重用数据库实例

在此处输入图像描述

请确认这是否是正确的方法?

字符串试运行:

var result = karate.callSingle('classpath:featureFiles/dbBackground.feature', config);

  config.PersonName = result.name;

主要特征:

Feature: DB Background

Background:
    * def name = "Sandeep";

其他特点:

Feature: Get Account Details

Background:

    * def actualname = PersonName;

@golden
Scenario: user 1 details
 * def expectedFormat = read('../requestFiles/format.json')

        Given url 'https://reqres.in/api/users'
        And params ({id: '1'})
        When method Get
        Then match response.data.email == "george.bluth@reqres.in"
        Then print '###################################name is: ', actualname
        Then print '###################################name is: ', PersonName

控制台结果显示为空:

在此处输入图像描述

更新试运行 2:

Feature: DB Background

Background:

    * def name = "Sandeep";

    @golden
Scenario: user sample details
 * def expectedFormat = read('../requestFiles/format.json')

        Given url 'https://reqres.in/api/users'
        And params ({id: '1'})
        When method Get
        Then match response.data.email == "george.bluth@reqres.in"

输出:

19:31:33.416 [ForkJoinPool-1-worker-0] DEBUG com.jayway.jsonpath.internal.path.CompiledPath - Evaluating path: $['data']['email']
19:31:33.416 [ForkJoinPool-1-worker-0] INFO com.intuit.karate - [print] ###################################name is:  Sandeep
19:31:33.432 [ForkJoinPool-1-worker-0] INFO com.intuit.karate - [print] ###################################name is:  Sandeep

标签: karate

解决方案


是的,您可以将其初始化,karate-config.js然后它将成为全局变量。

另请查看karate.callSingle()https ://github.com/intuit/karate#hooks


推荐阅读