У меня есть коллекция, которая запускается из GitLab CI, и перед ее развертыванием я обычно пробую ее в программе pm pmner runner.
Коллекция имеет разные вызовы с одинаковой структурой на основе одного и того же кода с разными наборами данных,Что-то вроде следующего примера:
call 1
call 2
call 3
call 4
call 1
call 5
call 6
call 7
call 1
etc...
на основе условий «вызов 1», postman.setNextRequest()
решает, следует ли выполнять вызов 2, 3 или 4 и т. Д.
Код работаетхорошо, но последний «цикл» (что-то вроде: вызов 1, вызов 8, вызов 9, вызов 10) не работает, а postman.setNextRequest()
ничего не делает.
На CI Newman / Gitlab я получаюследующая строка: Attempting to set next request to $[collection_name]
, но запрос не будет установлен, пока в Runner Collection я не получаю ошибок.
Помещение некоторых консольных журналов в операторы if
, куда идет код, возвращает журналы, что означает, что этоработает должным образом, но кажется, что только для последнего условного цикла запросов не работает.
код - это ЖЕ для всех запросов.
Вот фрагмент кодаэто работает для всех предыдущих сценариев, а не для последнего.Единственное, что я изменяю, это "checkJobName ()" if string и запросы "postman.setNextRequest"
const jsonData = JSON.parse(responseBody),
json_identifier = jsonData.stages;
json_identifier.forEach(function cicla(arr) {
arr.jobs.forEach(function cicla(job) {
function checkJobName() {
if (job.name === "premio_manuale") {
return true;
}
}
if (checkJobName() === true) {
pm.environment.set("id_job", job.id);
pm.environment.set("jobName", job.name);
pm.environment.set("jobStatus", job.status);
pm.environment.set("jobValidation", job.validation);
JobStatusPerformer();
}
//// check functions
function JobStatusPerformer(){
if (job.status === "success" ) {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + ", vado in idle ");
postman.setNextRequest("1111");
}
if (job.status === "pending" && job.validation === "manual") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , avvio il Job Resolve");
postman.setNextRequest("Resolve_pm");
}
if (job.status === "idle" && job.validation === "manual" && job.execution === "manual") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , avvio il Job Run");
postman.setNextRequest("Run_pm");
}
else if (job.status === "idle" && job.validation === "auto" && job.execution === "auto") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , attendere l'avvio e risoluzione automatica.");
postman.setNextRequest("222");
}
else if (job.status === "idle" && job.validation === "manual" && job.execution === "auto") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , il job è in idle, attendere la risoluzione del job precedente. Se già in stato 'success' visualizzare il log errori");
postman.setNextRequest("333");
}
if (job.status === "running" && job.validation === "manual" && job.execution === "manual") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , avvio il Job resolve");
postman.setNextRequest("Resolve_pm");
}
else if (job.status === "running" && job.validation === "auto" && job.execution === "auto") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , attendere la risoluzione automatica.");
postman.setNextRequest("444");
}
else if (job.status === "running" && job.validation === "manual" && job.execution === "auto") {
console.log("il job " + job.id + " " + job.label + " è in stato " + job.status + " e in modalità " + job.execution + " , avvio il Job resolve");
postman.setNextRequest("Resolve_pm");
}
if (job.status === "failed") {
console.log("lo stato del job " + job.id + " è " + job.status + ". Verificare i log.");
postman.setNextRequest("555");
}
else {
postman.setNextRequest("666");
}
}
});
});