Karate 请求';以一个工作示例&x27;从config.js调用参数到空手道DSL中的功能

Karate 请求';以一个工作示例&x27;从config.js调用参数到空手道DSL中的功能,karate,Karate,我的要求: 比如说,我已经在karate-config.js中设置了dbusername和dbpassword,如何在功能文件中调用dbusername并将其分配给变量? 我认为有以下几种方法 # if the js file evaluates to a function, it can be re-used later using the 'call' keyword * def someFunction = read('classpath:some-reusable-code.js')

我的要求:

比如说,我已经在karate-config.js中设置了dbusername和dbpassword,如何在功能文件中调用dbusername并将其分配给变量?

我认为有以下几种方法

# if the js file evaluates to a function, it can be re-used later using the 'call' keyword
* def someFunction = read('classpath:some-reusable-code.js')
如果我声明了some-reusables-code.js,如下所示

function fn() {
  var env = karate.env; // get system property 'karate.env'
  var myBaseUrl = 'https://reqres.in/api/users/2'
  var dbusername = 'myDBUserName'
  var dbpassword = 'myDBPassword'

  karate.log('karate.env system property was:', env);
  if (!env) {
    env = 'dev';
  }
  var config = {
    env: env,
    myVarName: 'someValue'
    myUrl: 'http://reqres.in/users'
  }
  if (env == 'dev') {
    // customize
    // e.g. config.foo = 'bar';
  } else if (env == 'e2e') {
    // customize
  }
  return config;
}
但是,当我阅读整个“some reusablecode.js”时,我如何将“dbusername”或“myNarName”或“myUrl”分配给myVar作为myusful.feature中的局部变量

是否可以给一个工作示例请

请阅读文档:

您缺少在函数退出时返回的
dbusername
作为
config
的一部分的部分。然后您不需要在功能中做任何额外的事情,
dbusername
将作为一个(全局)变量提供。试试这个硬编码的
karate config.js
并理解它:

function fn() {
  def config = {};
  config.dbusername = 'myDBUserName';
  config.dbpassword = 'myDBPassword';
  return config;
}
现在在您的功能中:

* print 'dbusername:', dbusername
您可以在这里找到一个工作示例: