Передача нескольких параметров с помощью karate.call

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

   * def activeDetails =
    """
      function(times){
        for(i=0;i<=times;i++){
          karate.log('Run test round: '+(i+1));
          karate.call('getActiveRouteDetails.feature', { token: token, currentPage: i });
        }
        java.lang.Thread.sleep(1*1000);
      }
    """
* call activeDetails totalPages

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

And print currentPage
And print token
And param pageNumber  = '#currentPage'
And param token = token

person anonymous    schedule 29.04.2020    source источник


Ответы (1)


Когда вы находитесь в блоке JavaScript, есть небольшая разница. Прочтите это: https://github.com/intuit/karate#karate-expressions

Сделайте это изменение:

var result = karate.call('examples/getDetails.feature', { token: token, currentPage, i });

И, пожалуйста, не используйте имена переменных, такие как current page, при необходимости обратитесь за помощью к другу-программисту JavaScript.

Также обратите внимание, что лучше всего избегать JS-кода и циклов, насколько это возможно: https://github.com/intuit/karate#loops

person Peter Thomas    schedule 30.04.2020
comment
@PeterSmith Спасибо, сэр, я обновлю код после перехода по ссылкам, которые вы предоставили. Я столкнулся с другой проблемой, как уже упоминалось. Не могли бы вы предоставить свой вклад - person anonymous; 30.04.2020
comment
@anonymous отметьте этот ответ как принятый, задайте новый вопрос, сделайте его простым и понятным, пожалуйста - person Peter Thomas; 30.04.2020