空手道-在标题之间切换

时间:2018-11-27 17:37:51

标签: karate

假定我有2个用户,并且使用基本身份验证。我想一次生成2个基本的auth令牌,然后在一种功能中针对每种情况重新使用它。最重要的是,我有不需要授权的场景。如何用最少的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;
}

karate-config.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'});
...

project-get.feature

Feature: project end-point

Background:
* url baseUrl
Scenario: get projects user has right to
  * configure headers = {Authorization : '#(apitester1AuthHeader)'}
  Given path 'project'
...

1 个答案:

答案 0 :(得分:1)

您所拥有的东西看起来很合理。

请注意,如果您这样做:

* configure headers = null

它将具有暂时的不授权的效果。我建议您坚持使用现有的工具,它已经非常模块化了。