【发布时间】:2019-04-29 12:29:39
【问题描述】:
假设我有 2 个用户并且我使用基本身份验证。我想生成 2 个基本身份验证令牌一次,并在每个场景中在一个功能中重用它。最重要的是,我有不需要授权的场景。我怎么能用最少的 biolerplate 来实现这一点?目前我有
auth-header.js
function(creds) {
var temp = creds.username + ':' + creds.password;
var Base64 = Java.type('java.util.Base64');
var encoded = Base64.getEncoder().encodeToString(temp.bytes);
return 'Basic ' + encoded;
}
空手道配置.js
...
config.apitester1AuthHeader =
karate.call('classpath:auth-headers.js', {username:'apitester1', password:'xxx'});
config.apitester2AuthHeader =
karate.call('classpath:auth-headers.js', {username:'apitester2', password:'xxx'});
...
项目-get.feature
Feature: project end-point
Background:
* url baseUrl
Scenario: get projects user has right to
* configure headers = {Authorization : '#(apitester1AuthHeader)'}
Given path 'project'
...
【问题讨论】:
-
您的内容看起来不错,但每次配置标头时我都会使用一个或多个 header configuration functions 而不是 JSON。
-
我不得不使用 call 而不是 callSingle 因为 callSingle 只生成了第一个令牌。
标签: karate