@virendrachaudhary см. мое редактирование.

рживает ли Карате функцию, в которой вы можете определить переменную в сценарии и повторно использовать ее в других сценариях в том же файле объектов. Я пытался сделать то же самое, но получил ошибку. Каков наилучший способ повторного использования переменных в одном файле объектов?

Scenario: Get the request Id
    * url baseUrl
    Given path 'eam'
    When method get
    Then status 200
    And def reqId = response.teams[0]resourceRequestId

Scenario: Use the above generated Id
   * url baseUrl
   * print 'From the previous Scenario: ' + reqId

Ошибка:

Caused by: javax.script.ScriptException: ReferenceError: "reqId" is not defined in <eval> at line number 1

Ответы на вопрос(1)

Решение Вопроса

Background: раздел. Вотпример.

РЕДАКТИРОВАТЬ: переменная, если вBackground: будет переинициализирован для каждого сценария, который является стандартным поведением тестируемого фреймворка. Вы можете использоватьcallonce если вы хотите, чтобы инициализация произошла только один раз.

Если вы пытаетесь изменить переменную в одном сценарии и ожидаете, что она будет иметь это измененное значение при следующемScenario начинается, вы неправильно поняли концепциюScenario, Просто объедините свои шаги в одинScenario, потому что думать об этом: это "течь«Вы пытаетесь проверить.

каждыйScenario должен быть в состоянии бежатьавтономный, В дальнейшем порядок исполненияScenario-s может даже быть случайным или работать параллельно.

Еще один способ объяснить это - если вы закомментируете одинScenario другие должны продолжать работать.

Пожалуйста, не думайте оScenario как способ «документировать» важные части вашего теста. Вы всегда можете использовать комментарии (например,# foo bar).

Вы можете легко повторно использовать код, используяcall поэтому вам не нужно беспокоиться о том, будет ли дублирование кода проблемой.

 Saurabh06 сент. 2017 г., 19:52
поэтому, если мы объявим переменную в фоновом режиме, мы сможем обновить ее с помощью одного сценария, а обновленное значение можно будет использовать в последующих сценариях?
 Peter Thomas28 дек. 2017 г., 13:06
@virendrachaudhary см. мое редактирование.
 virendra chaudhary10 нояб. 2017 г., 13:18
@PeterThomas, как обновить фоновую переменную? Поскольку фон обновляется перед каждым сценарием, он инициализируется обратно к предыдущей переменной.

Ваш ответ на вопрос