независимое управление несколькими браузерами во время тестов e2e транспортира

Во время E2E-тестирования программы веб-чата angular с использованием транспортира в качестве платформы E2E я хотел бы открыть два браузера и управлять каждым из них во время теста, чтобы я мог имитировать реальный чат и убедиться, что все ожидания выполнены.

Это возможно? Я знаю, что могу запустить тест параллельно в нескольких браузерах, используя сегмент конфигурации с несколькими возможностями, но здесь я хочу запустить несколько браузеров как часть теста и выполнить различные проверки исключений.

Любая помощь будет приветствоваться,

Спасибо

Алон


person Alon1980    schedule 18.11.2014    source источник
comment
Эта функция была запрошена давно! Protractor#381, но вам может повезти: идет PR;)   -  person glepretre    schedule 19.11.2014
comment
PR отправлен и будет включен в следующий выпуск Protractor, 1.5.0.   -  person Jmr    schedule 04.12.2014


Ответы (2)


Вот пример, который делает именно то, что вы хотите (т.е. тестирует мессенджер)

См. https://github.com/angular/protractor/blob/master/spec/interactionConf.js и https://github.com/angular/protractor/blob/master/spec/interaction/interaction_spec.js#L51

Чтобы запустить тестовое приложение для обмена мгновенными сообщениями, с которым я тестирую, проверьте проект protractor github и запустите npm start

person hankduan    schedule 14.01.2015
comment
Кроме того, есть плагин, который поддерживает создание снимков экрана и визуальных отчетов из приложений, подобных чатам. github.com/azachar/protractor-screenshoter-plugin - person Andrej; 16.10.2016

Да, вы можете контролировать несколько браузеров, разветвив драйвер:

browser.get('http://www.angularjs.org');
browser.addMockModule('moduleA', "angular.module('moduleA', []).value('version', '3');");

// To create a new browser.
var browser2 = browser.forkNewDriverInstance();

// To create a new browser with url as 'http://www.angularjs.org':
var browser3 = browser.forkNewDriverInstance(true);

Обратите внимание, что если вы используете глобальные переменные или $ или $$, вам также необходимо подготовить новую замену

var element2 = browser2.element;
var $2 = browser2.$;
var $$2 = browser2.$$;
element2(by.model(...)).click();
$2('.css').click();
$$2('.css').click();

https://www.protractortest.org/#/browser-setup#using-multiple-browsers-in-the-same-test

person Dmitry Gusarov    schedule 12.04.2021