#javascript #postman
#javascript #почтальон
Вопрос:
Я использую postman для тестирования API, который выглядит следующим образом: (это СООБЩЕНИЕ)
{
"contact_name": "{{contact_name}}",
"contact_email": "{{contact_email}}",
"answers": [
{
"question_id": 1,
"value": "{{value_1}}"
},
{
"question_id": 2,
"value": "{{value_2}}"
}
],
"disable_email": true
}
У меня есть среда с соответствующими переменными:
contact_name,contact_email,value_1,value_2
И я использую Runner для загрузки CSV-файла, содержащего 100 000 строк.
На самом деле, он работает хорошо, но мне нужно ставить задержку, например, каждые 10 000 строк. Есть ли способ выполнить это? Я знаю, что есть способ установить задержку на каждой итерации, но я хотел бы знать, есть ли способ установить задержку (30 секунд) после 10 000 итераций.
Спасибо!
Комментарии:
1. просто любопытно, каков размер вашей оперативной памяти для запуска такого огромного CSV-файла?
2. Привет! Я запускаю его на компьютере Ubuntu с виртуальной машиной. 2 ядра и 8 ГБ оперативной памяти, однако для отправки всех запросов требуется всего от 2,5 до 3 ГБ оперативной памяти
3. вы используете newman или collection runner
4. помог ли вам этот ответ
Ответ №1:
Добавьте это в сценарий предварительного запроса
if((pm.info.iteration 1)===10000){
setTimeout(()=>{},3000)
}
Это будет ждать 3 секунды перед отправкой rquest для итерации 10000, отсчет начинается с ‘0’, поэтому к этому добавляется 1.
Комментарии:
1. Привет! при достижении 10 000 запросов происходит сбой. Я получаю сообщение об ошибке out of array, и скрипт останавливается. Вот как выглядит сценарий предварительного запроса: pm.environment.set(«контакт» , data.contact); pm.environment.set(«значение_1» , data.значение_1); pm.environment.set(«значение_2» , data.значение_2); если((pm.информация.итерация 1)===10000){ setTimeout(()=>{},30000) } в чем может быть проблема?
2. это не имеет никакого отношения к этому предварительному запросу, мы не обращаемся ни к какому массиву здесь.
3. попробуйте распечатать pm.info.iteration и посмотрите, что вы получите
Ответ №2:
Это работает! Я просто добавил еще одно предложение if, потому что счетчик сбрасывался каждый раз. Вот как это работало:
var cont = parseInt(pm.environment.get('cont'));
if((pm.info.iteration)==0) {
pm.environment.set("cont", 5000);
}
if((pm.info.iteration 1)==cont) {
cont=cont 5000;
setTimeout(()=>{},120000);
pm.environment.set("cont", cont);
}
(в этом примере я устанавливаю, что каждые 5000 итераций я устанавливаю задержку в 2 минуты)
И по какой-либо причине postman считывает все переменные как строки, я этого не знал