Каратэ: вопросительный знак кодируется как часть пути - PullRequest
1 голос
/ 30 января 2020

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

Given path '/search'
And param merchantId = 'abc'
And param email = 'abc@gmail.com'

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

* if('<testcaseName>' == 'search by merchantId') karate.set('pathVar','/search?merchantId=' + merchantId);
* if('<testcaseName>' == 'search by email') karate.set('pathVar','/search?email=' + email);

Given path pathVar

Есть ли другой способ их отправки?

1 Ответ

0 голосов
/ 30 января 2020

Используйте ключевое слово params: https://github.com/intuit/karate#params

Любые значения null НЕ будут отправлены. Посмотрите этот пример: dynamic-params.feature

Таким образом, вы можете сделать что-то вроде этого:

Given path '/search'
And params { merchantId: '#(a)', email: '#(b)' }

Таким образом, в зависимости от значений переменных a и b Вы можете контролировать свой тест так, как хотите.

...