Webdriver.IO Работа с файлами cookie для единого входа - PullRequest
0 голосов
/ 25 мая 2018

Я создаю несколько тестов 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, и используйте их в последующих тестах.Я бился головой о стену, пытаясь понять, как это делается.Это внутренний сайт с очень устаревшим методом аутентификации, но мне нужно написать автоматизацию тестирования для его графического интерфейса.После преодоления этого конкретного препятствия, это должно быть легко сделать.Предложения с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...