У меня есть набор тестов, которые я пытаюсь настроить для запуска в определенной последовательности. Последовательность определяется с помощью операторов if / else if, которые проверяют переменную в файле данных и устанавливают следующий запрос в зависимости от его значения.
Это хорошо работает для первоначального запроса в моей коллекции. Но когда он получит запрос позже в этой последовательности, оператор if распознает правильную переменную, но пропустит команду postman.setNextRequest () и запустит тест под ним в порядке сбора вместо выполнения указанного теста.
Кто-нибудь знает, почему это происходит? Похоже, ошибка с функцией postman.setNextRequest ().
Запрос, где функция работает, как ожидалось:
var rsp = pm.response.json();
var base = pm.environment.get('baseUrl');
pm.environment.set('id', data['appName']);
var id = pm.environment.get('id');
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
pm.test("Response contains correct BaseUrl", function(){
var issuer = rsp.issuer;
pm.expect(issuer).to.contain(base);
//console.log(resName);
console.log('Passed - on to the next one!')
});
});
if (id === 'Application/Member_PRODUCTION'||id === 'Application/B2C_PRODUCTION'||id === 'Application/Claims Transformation_PRODUCTION'){
postman.setNextRequest('PKCE Step 1- Generate PKCE Challenge and Verifier');
}
else if (id === 'Application/sysTest_SysTest2_PRODUCTION'){
postman.setNextRequest("oAuth Step 1 - Unauthorised API call");
}
else{
postman.setNextRequest("oAuth Step 2- Get Session Data Key");
}
Следующий запрос, где функция не работает:
let cookieJar = pm.cookies.jar();
cookieJar.clear(pm.environment.get('baseUrl'));
var id = pm.environment.get('id');
console.log('oAuth check complete for application: '+ id);
pm.test("Status code is 302", function () {
pm.response.to.have.status(302);
console.log('Passed - on to the next one!')
});
if (id === 'Application/Member_PRODUCTION'){
console.log('Next Up - SCIM Tests')
postman.setNextRequest("SCIM Step 1 - Create Member");
}
else{
console.log('Next Up - Login Page Test')
postman.setNextRequest("Login Page Step 1- Get Session data key");
}
Имена запросов были скопированы непосредственно из самих запросов, поэтому я не верю, что он не может найти указанный следующий запрос, и использование в обоих фрагментах выше, кажется, то же самое, поэтому я немного застрял.