Каратэ Нетти - CallSingle но не так одиноко - PullRequest
2 голосов
/ 12 июня 2019

То, что у меня было до сегодняшнего дня:

У меня есть get_jwt.feature, и я называю это частью karate-config.js.Поскольку я использовал одну учетную запись test@test.com, мне нужен был только один jwt, и я могу использовать его в различных сценариях.callSingle в этом случае сработало как заклинание.

Сегодня:

Внезапно мне нужны jwt из двух учетных записей, которые я не хочу генерировать для каждого сценария, callSingle не хватаетэта задача, поскольку она делает именно то, что должна делать.Теперь у меня есть хакерская идея, я могу просто сделать два файла, get_jwt.feature и get_jwt_user2.feature, и по одному вызывать их каждый.

Итак, мой вопрос: есть ли лучший способ сделать это?

1 Ответ

2 голосов
/ 12 июня 2019

Вы можете использовать «2 уровня» звонков.Поэтому укажите callSingle() на функцию JS, которая вызывает get_jwt.feature 2 раза, возможно, с другими аргументами, а затем возвращает JSON.Псевдокод ниже.Сначала это get_jwts.js:

function fn(users) {
  var jwt1 = karate.call('get_jwt.feature', users.user1);
  var jwt2 = karate.call('get_jwt.feature', users.user2);
  return { jwt1: jwt1, jwt2: jwt2 };
};    

Затем в karate-config.js

config.jwts = karate.callSingle('classpath:get_jwts.js', users);

И теперь вы должны быть в состоянии сделать это:

* print jwts.jwt1
* print jwts.jwt2

Вы можетеТакже сделайте функцию -> функция вызова.Дайте мне знать, если это работает!

РЕДАКТИРОВАТЬ: см. Ответ Бабу в комментариях, похоже, что вы можете передать массив в callSingle()!так что это может быть довольно удобно:)

...