Запуск теста LeanFT параллельно с использованием testng xml
Я пытаюсь запустить тесты LeanFT параллельно, используя TestNg XML в браузере Chrome.
Он работает нормально, но он открывает все тестовые сессии в одном и том же браузере, вызывая проблемы с файлами cookie для входа и выхода из системы.
Пример:
Я запускаю тест из TestNG XML с parallel="tests" thread-count="2"
и запуск браузера в LeanFT с
public Browser getbrowser() {
Browser browser = null;
browser = BrowserFactory.launch(BrowserType.CHROME);
browser.clearCache();
return browser;
}
Поэтому каждый раз, когда я запускаю тест из TestNG XML параллельно, все тесты открываются в одном и том же браузере, что вызывает проблему с файлами cookie, как и у меня. browser.clearCache()
в getbrowser()
метод.
Я хочу запускать тесты LeanFT параллельно с каждым потоком, открывающим новый экземпляр окна Chrome и работающим параллельно на одной и той же машине.
Пожалуйста, поделитесь, если кто-нибудь реализовал параллельное выполнение для LeanFT на той же машине.
1 ответ
Когда вы используете BrowserFactory.launch
за кулисами это похоже на бег
chrome about:blank
из командной строки. Вы можете попробовать выполнить это в командной строке / терминале, и вы увидите, что в первый раз откроется новое окно, но во 2-й, 3-й и т. Д. Это будет означать новую вкладку в открывшемся окне.
Это специфическое поведение браузера. Конечно же, Firefox отличается от командной строки и, что неудивительно, .launch
также открывает новое окно на Firefox от постного.
Чтобы открыть новое окно в Chrome, --new-window
Переключатель необходим. LeanFT не готов к этому (пока), вам придется запускать команду самостоятельно.
chrome --new-window www.google.com
Я уверен, что вы знаете, как запустить процесс из Java, но, для полноты моего ответа, вот как запустить процесс из Java. По существу:
Process myProcess = Runtime.getRuntime().exec(command);
А потом использовать BrowserFactory.attach
, прикрепить к открытому окну.
Если вам нужно запустить несколько экземпляров, вам нужно будет однозначно идентифицировать их. Попробуйте открывать новые окна каждый раз, увеличивая переменную, например: https://www.google.com/search?q=dummy1
Так:
Окно 1
Процесс для запуска:
chrome --new-window https://www.google.com/search?q=dummy1
Описание к использованию:
BrowserFactory.attach(new BrowserDescription.Builder().title("dummy1 - Google Search").build());
Окно 2
Процесс для запуска:
chrome --new-window https://www.google.com/search?q=dummy2
Описание к использованию:
BrowserFactory.attach(new BrowserDescription.Builder().title("dummy2 - Google Search").build());
и т.п.