【问题标题】:Karate - switch between headers空手道 - 在标题之间切换
【发布时间】: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


【解决方案1】:

你所拥有的看起来很合理。

请注意,如果您这样做:

* configure headers = null

会产生暂时不授权的效果。我建议坚持使用你所拥有的,它已经非常模块化了。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多