Мне нужно передать несколько параметров запроса с тем же именем в URL-адресе, но у меня возникают проблемы с его работой с Karate. В моем случае URL-адрес должен выглядеть так:
http://mytestapi.com/v1/orders?sort=order.orderNumber&sort=order.customer.name,DESC
Обратите внимание на два параметра запроса с именем «sort». Я попытался создать эти параметры строки запроса с помощью Karate, но в строке запроса создается только последний параметр «сортировки». Вот как я пытался это сделать:
Given path 'v1/orders'
And param sort = 'order.orderNumber'
And param sort = 'order.customer.name,DESC'
And header Authorization = authInfo.token
And method get
Then status 200
А также:
Given path 'v1/orders'
And params sort = { sort: 'order.orderNumber', sort: 'order.customer.name,DESC' }
And header Authorization = authInfo.token
And method get
Then status 200
А также:
Given path 'v1/order?sort=order.orderNumber&sort=order.customer.name,DESC'
And header Authorization = authInfo.token
And method get
Then status 200
Первые два способа обеспечивают одинаковый результат строки запроса: ?sort=order.customer.name%2CDESC
Последний пример не работает, потому что? получить кодировку, что ожидалось и объяснялось в этом сообщении - Тесты API каратэ - Как избежать '?' в URL-адресе файла функции
Понятно, что второй параметр «сортировки» переопределяет первый, и к URL-адресу добавляется только один параметр. Я просмотрел документацию по Каратэ, что очень хорошо, но я не нашел способа добавить несколько параметров с одним и тем же именем.
Итак, есть ли способ в Karate установить несколько параметров запроса URL с одним и тем же именем?