Я создаю несколько тестов node.js webdriverio.Когда я подключаюсь к любому из моих сайтов, проверяется наличие cookie-файла ssosession (среди прочего), чтобы подтвердить, что пользователь имеет доступ к странице.Если его там нет, браузер немедленно перенаправляет на нашу страницу входа.Мне нужно получить полученные cookie-файлы с успешного входа в систему и использовать их для загрузки страниц, которые я хочу протестировать.
В curl я делаю это так:
curl -H"Content-type: application/json" --user-agent "MyTestAgent" --cookie-jar cookiefile -o - --data-ascii "{\"user_id\": \"username\", \"user_secret\": \"password\"}" -X POST https://loginpage.net
Затем:
curl -H"Content-type: application/json" --user-agent "MyTestAgent" --cookie cookiefile - --cookie-jar cookiefile -o - https://testpage.net
В настоящее время в моем коде, когда я нажимаю URL-адрес страницы, которую я намерен протестировать, она сразу же перенаправляет на страницу входа в систему, я ввожу учетные данные для входа в систему и она успешно входит в систему.Затем я выгружаю куки в консоль, и они не обновляются.Вещи не существует (пока?).Если я утешу только ssosession, он будет нулевым.Если я укажу на cookie.log все файлы cookie, они будут такими же, как если бы я просто взял файлы cookie со страницы входа в систему без входа в систему. Ничего из существующего в SSO не присутствует.
describe('testpage.net page', function () {
it('should login', function () {
browser.url('https://testpage.net');
//this immediately redirects to https://loginpage.net
browser.setValue('#userid','noone@nowhere.net');
browser.setValue('#passwd','S3cr3tP4ssw0rd');
browser.submitForm('#login');
console.log(browser.getCookie('ssosession'));
//returns null
console.log(browser.getCookie());
//returns cookies that existed prior to login success
});
});
Мне нужно средствочтобы захватить куки успешной регистрации, сохраните их локально, как curl cookiejar, и используйте их в последующих тестах.Я бился головой о стену, пытаясь понять, как это делается.Это внутренний сайт с очень устаревшим методом аутентификации, но мне нужно написать автоматизацию тестирования для его графического интерфейса.После преодоления этого конкретного препятствия, это должно быть легко сделать.Предложения с благодарностью!