Устойчивость тестовой сессии Angular Protractor

Я работаю над тестами e2e для веб-приложения, и я хотел бы войти в систему пользователя и сохранить его сеанс.

Конкретно следующий сценарий:

  1. Форма входа отправлена ​​с действительными учетными данными.
  2. Angular направляет пользователя на целевую страницу.
  3. Я вызываю browser.get (/ * текущий URL * /)
  4. Я ожидаю, что текущий URL-адрес будет таким же, вместо того, чтобы мой пользователь вернулся на экран входа в систему.

Мы используем аутентификацию на основе HTTP-заголовка, и я не знаю, как настроить этот сценарий для целей тестирования.

Это так просто, как где-нибудь активировать файлы cookie? Или, может быть, поддержка заголовков auth через конфигурацию?


person BradGreens    schedule 28.04.2014    source источник


Ответы (3)


Мне удалось решить эту проблему, просто добавив browser.sleep(1000) перед вызовом browser.get( /* the current url */ ).

По сути, Protractor работал с роутером слишком быстро, и мое приложение выгружало меня до того, как были установлены права авторизации. Или, возможно, для обработки маршрутизации HTML5 требуется немного времени (наши глубокие ссылки хешируются, но затем angular преобразует хеш в маршруты HTML5).

person BradGreens    schedule 28.04.2014

Вы тоже можете использовать browser.waitForAngular();.

person Pablodotjs    schedule 30.08.2016
comment
Этот ответ оказался в очереди на проверку низкого качества, предположительно из-за того, что вы не предоставили никакого объяснения кода. Если этот код отвечает на вопрос, подумайте о добавлении текста, объясняющего код, в свой ответ. Таким образом, у вас гораздо больше шансов получить больше голосов и помочь человеку, задавшему вопрос, узнать что-то новое. - person lmo; 31.08.2016

Вы можете использовать такие обещания

goAfterLogin: function(){
    browser.get('http://www.example.com').then(function(){
        return this; //or other return

    }).then(function(){
        return this;
    });
 }

Вам решать, как вы будете его использовать (вы также можете создавать promis с помощью waitForAngular ())

person Hikaryu    schedule 30.08.2016