使用另一个变量从其他功能文件调用方案

时间:2019-06-28 14:15:07

标签: karate

我有一个特征文件,其中使用了一个变量,例如:1。 我从另一个功能文件调用此方案,但是这次我想传递另一个变量,例如:2

功能文件A:generateDocument.feature

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<label>Toggle lookup</label>
<input id="chk" type="checkbox" checked />
<p class="lookup">You can look up!</p>
<p class="no-lookup">Sorry, you can't look up :(</p>

功能文件B:useDocument.feature

@generatedoc
Scenario: Verify able to generate document for user
    Given path somepath
    And header Content-Type = 'application/json'
    And request {"userId": "abc123"}
    When method POST
    Then status 200
    * table documentId
      | id         | docTitle | 
      | '#notnull' | "ijk"    | 
      | '#notnull' | "xyz"    | 
    And match response[*].id == $documentId[*].id
    And match response[*].title == $documentId[*].docTitle

因此,当我运行功能文件A时,它应该使用变量'abc123',但是当我运行功能文件B时,它应该使用变量'abc456'

但是目前,当我运行功能文件B时,它仍然使用'abc123'

1 个答案:

答案 0 :(得分:1)

请在A中执行此操作-使其成为可重复使用的功能。

And request {"userId": "#(userId)"}

现在您需要调用2次(也许有2种不同的功能,并且可以使用):

特征B:

call read('generateDocument.feature') { userId: 'abc456' }

功能C:

call read('generateDocument.feature') { userId: 'abc123' }