Установка глобальных переменных в каратэ из одной функции для использования в другой функции - PullRequest
0 голосов
/ 07 февраля 2019

Проблема

У меня есть 3 разных файла функций.Один для EndToEndTest.feature (тест интеграции), один для create-service.feature (базовый вызов API), а другой для create-тарифа (вызов API, который требует ответа от create-service.feature)

EndToEndTest.feature

Feature: End To End Standard

  Background:
  * def result = call read('../get-user-token.feature')
  * def service = call read('create-service.feature')
  * def location = service.responseHeaders['Location'][0]
  * def serviceId = location.substring(location.lastIndexOf('/') + 1)

  # I want serviceId to be set globally so I can access it into the create-tariff.feature

  * def tariff = call read('create-tariff.feature')

create-тарифа .feature

Feature: Create Tariff

  Background:
  * def result = call read('../../get-user-token.feature')
  * def service = serviceId

Очевидно второе определениездесь (service = serviceid) произойдет сбой, поскольку он не сможет получить набор serviceId из первого

Мой вопрос: каков наилучший способ передачи одной переменной (serviceId) из EndToEndTest.feature для назначенияв другую переменную (услугу) в create-Тариф.feature

1 Ответ

0 голосов
/ 07 февраля 2019

Наличие функций зависит друг от друга, это очень плохая практика, и я не рекомендую это.Вы не должны даже иметь Scenario -с зависит от других.

Пожалуйста, прочитайте это: https://github.com/intuit/karate#script-structure

Обратите внимание, что у вас есть крючки - в частности karate.callSingle(), но он предназначен только для ситуаций, когда вы входите в систему и получаете токен, а затем должны использовать его заново.

...