Запуск теста LeanFT параллельно с использованием testng xml - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь запустить тесты 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 Ответ

0 голосов
/ 29 мая 2018

Когда вы используете BrowserFactory.launch, за кадром это похоже на бег

chrome about:blank

из командной строки. Вы можете попробовать выполнить это в командной строке / терминале, и вы увидите, что в первый раз откроется новое окно, но во 2-й, 3-й и т. Д. Это будет означать новую вкладку в открывшемся окне.

Это поведение, специфичное для браузера. Конечно же, Firefox отличается от командной строки и, что неудивительно, .launch открывает новое окно на Firefox и из leanft.

Чтобы открыть новое окно в 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. Окно 1

    Процесс запуска: chrome --new-window https://www.google.com/search?q=dummy1

    Описание для использования:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy1 - Google Search").build());
    
  2. Окно 2

    Процесс запуска: chrome --new-window https://www.google.com/search?q=dummy2

    Описание к использованию:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy2 - Google Search").build());
    
  3. и т.д.

...