Есть ли способ ввести несколько переменных среды в URL-адрес для тестирования на почтальоне?

#automated-tests #postman

Вопрос:

Я тестирую конечную точку в Postman, используя URL-адрес, подобный этому, {{api_url}}/stackoverflow/help/{{customer_id}}/{{client_id}} . У меня есть api_url , customer_id , и client_id хранятся в моих переменных окружения. Я хотел бы протестировать несколько customer_id и client_id без необходимости каждый раз вручную изменять переменные среды. Я создал csv-файл для хранения списка customer_id и один для хранения client_id . Когда я перейду к запуску коллекции, это позволит мне добавить только один файл. Есть ли другой способ сделать это, если я хочу повторить свои тесты, чтобы автоматизировать их?

Комментарии:

1. Попробуйте выполнить действия, перечисленные здесь: community.postman.com/t/…

Ответ №1:

Вы можете добавить оба customer_id amp; client_id в один csv-файл. Почтальон повторит n раз (n = количество строк csv, кроме заголовка)

введите описание изображения здесь

Ответ №2:

вы можете использовать postman.setNextRequest для управления потоком. Приведенный ниже код запускает запрос с различными значениями в переменной arr

URL-адрес:

 {{api_url}}/stackoverflow/help/{{customer_id}}/{{client_id}}
 

теперь добавьте предварительный запрос:

 // add values for the variable in an array
const tempArraycustomer_id = pm.variables.get("tempArraycustomer_id")
const tempArrayclient_id = pm.variables.get("tempArrayclient_id")

//modify the array to the values you want
const arrcustomer_id = tempArraycustomer_id ? tempArraycustomer_id : ["value1", "value2", "value3"]
const arrclient_id = tempArrayclient_id ? tempArrayclient_id : ["value1", "value2", "value3"]


// testing variable to each value of the array and sending the request until all values are used

pm.variables.set("customer_id", arrcustomer_id.pop())
pm.variables.set("client_id", arrclient_id.pop())

pm.variables.set("tempArraycustomer_id", arrcustomer_id)
pm.variables.set("tempArrayclient_id", arrclient_id)


//end iteration when no more elements are there
if (arrcustomer_id.length !== 0) {
    postman.setNextRequest(pm.info.requestName)
}