2

我希望将授权标头作为变量传递给另一个功能文件。这是我正在尝试做的一个例子:

    Feature: Resource Creation
      Background:
        * url baseUrl

        Scenario: Create Resource
          Given def basictoken = 'Basic Zn*****'          
          And def token = call read('classpath:endpoints/UserLogin.feature')
          Given path 'lobs'
          And header X-XSRF-TOKEN = token.xsrftoken
          And header Cookie = 'SESSION='+token.scookie+'; '+'XSRF-TOKEN='+token.xsrftoken
          And request [{"name":"Boston"}]
          When method post
          Then status 200

这是它所指的文件:

Feature: Common User Login
Background:
  * url baseUrl

Scenario:
  Given path 'security/user'
  And header Authorization = '#(basictoken)'
  When method get
  Then status 200
  Given path 'rname/name'
  When method get
  Then status 200
  And def xsrftoken = responseCookies["XSRF-TOKEN"].value
  And def scookie = responseCookies["SESSION"].value

我在And header Authorization = '#(basictoken)' 有什么方法可以通过它时遇到错误?当我将其硬编码为其值时,我看不到任何问题。您能否帮助我们了解如何将变量从一个功能文件传递到另一个功能文件。提前致谢。

4

1 回答 1

4

请进行此更改:

Given def token = call read('classpath:endpoints/UserLogin.feature') { basictoken: 'Basic Zn*****' }

另请注意,对于存在于范围内的简单变量(也从“调用”功能继承),您不需要#(foo)约定:

And header Authorization = basictoken  
于 2017-08-23T03:15:51.170 回答