如何传递多个参数以调用karate-config.js上的单个空手道

时间:2019-07-02 11:41:12

标签: karate

我有一个.feature文件,它将以__arg的形式接收来自另一个功能文件的参数,从而为oAuth生成令牌

 Given url urlRefreshToken
 Given def json = __arg
 And header Content-Type = 'application/json; charset=utf-8'
 And request json
 * header Authorization = 'Bearer' + __arg.refresh_token
 When method POST
 Then status 200
 * def bearer = 'Bearer ' + response.access_token

我试图仅在karate-config.js上集中一次令牌生成。但是我似乎无法将karate.callSingle()与传递的参数一起使用。

我使用功能文件在其他功能文件上生成令牌,如下所示:

* def getToken = call read('classpath:features/Utils/GetToken.feature') refreshTokenRaymond
* header Authorization = getToken.bearer

我试图调用功能文件以在karate-config.js上生成令牌无济于事。我试图在karate-config.js上传递这样的附加参数:

var config = {
    baseUrl: 'url',
    urlRefreshToken: 'url',
    refreshToken: '{refreshToken: refreshToken}'
  };
var token = karate.callSingle('classpath:features/Utils/GetToken.feature', [config, config.refreshToken])

我想知道是否可以将多个参数传递给从karate.callSingle()调用的karate-config.js吗?

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

callkarate.callSingle()仅采用一个参数,但是您可以轻松地从其他JSON中创建新的JSON。实际上,由于您似乎在传递config作为参数-您可以轻松地以config.refreshToken的身份访问__arg.refreshToken

您的代码非常混乱-但希望此提示能助您一臂之力:

Given def json = __arg.refreshToken

如果您需要根据其他数据创建JSON-我想您已经知道该怎么做:

var temp = { config: config, refreshToken: refreshToken };
var token = karate.callSingle('classpath:features/Utils/GetToken.feature', temp);