postman.setNextRequest не удалось вызвать - PullRequest
0 голосов
/ 16 января 2020

У меня есть набор тестов, которые я пытаюсь настроить для запуска в определенной последовательности. Последовательность определяется с помощью операторов 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");
}

Имена запросов были скопированы непосредственно из самих запросов, поэтому я не верю, что он не может найти указанный следующий запрос, и использование в обоих фрагментах выше, кажется, то же самое, поэтому я немного застрял.

...