我有一个.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
吗?
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
call
和karate.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);