Как установить и получить значения глобальной переменной в файле объектов в каратэ? - PullRequest
1 голос
/ 28 июня 2019

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

Я попробовал файл karate-config.js, чтобы создать переменную, и попытался использовать это в файле возможностей. Но не сработало.

  var config = {
    env: env,
    baseUrl: 'http://**************',
    pds5_id: 'empty',
    pds5_token: 'empty'
  } 

Given path 'pds','identities' 
  And request {}
 When method post
 Then status 200
  And def pds_id = response.id
  And set pds5_id = pds_id    

Я ожидал сохранить этот идентификатор пользователя в глобальной переменной "pds5_id", но получил ошибку ниже

com.intuit.karate.exception.KarateException: create_identities.feature:16 - cannot set json path on unexpected type: [type: STRING, value: empty]
    at ✽.And set pds5_id = pds_id (create_identities.feature:16)

1 Ответ

0 голосов
/ 28 июня 2019

Как только переменная установлена ​​в karate-config.js, вы не можете ее изменить, так что это неправильно (и set работает только в JSON с выражением пути):

And set pds5_id = pds_id

Что вам нужно прочитать, так это часть документов: https://github.com/intuit/karate#calling-other-feature-files

Сделайте глубокий вдох и внимательно прочитайте, время того стоит. И вы найдете ответ.

Имейте в виду, что иметь одну Scenario зависимость от другой - это неправильно: https://github.com/intuit/karate#script-structure - поэтому не думайте с точки зрения «глобальных» переменных - просто используйте функцию многократного использования везде, где это необходимо.

Если вам действительно нужно установить одноразовую переменную в начале, для этого callSingle(): https://github.com/intuit/karate#hooks - но сначала попробуйте заставить работать основы, так как вы новичок в Каратэ.

...