В моей программе у меня есть список n тестовых скриптов, мне нужно перебирать список и запускать три тестовых скрипта параллельно. Для достижения этой задачи я создал Threadpool размера 3. Моя реализация как ниже для пула потоковJava runtime.exec(), выполняющий несколько процессов с использованием Threadpool
ExecutorService executor = Executors.newFixedThreadPool(3);
for (int threadpoolCount = 0; threadpoolCount < classNames.size(); threadpoolCount++) {
Runnable worker = new ProcessRunnable(classNames.get(threadpoolCount));
executor.execute(worker);
}
executor.shutdown();
while (!executor.isTerminated()) {
}
System.out.println("Finished all threads");
ниже моя реализация потока, где в я выполнить пакетный файл с командами Maven в нем
public void run() {
try {
System.out.println(testname);
System.out.println("Task ID : " + this.testname + " performed by " + Thread.currentThread().getName());
Process p = Runtime.getRuntime().exec("cmd /C Junit_runner.bat" + " " + testname);
p.waitFor();
Thread.sleep(5000);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Вот что я получаю в моей консоли (я не запускается из командной строки и запустить его в фоновом режиме)
com.selenium.test.testname1 Идентификатор задачи: com.selenium.test.testname1 выполняется пул-1-нить-1
com.selenium.test.testname1 Task ID: com.selenium.test.testname2 осуществляется бассейн- 1-нить-2
com.selenium.test.testname1 идентификатор задачи: com.selenium.test.testname3 выполняется пул-1-нить 3-
выполнение пауз здесь, и это ничего не делал, я не сушу что происходит. Я также перекрестно проверил, что пакетный файл работает нормально.
Сколько времени займет «Junit_runner.bat»? – Jatin
Для выполнения своих заклинаний и termiante требуется от 2 до 3 минут, ее e - моя команда командного файла. ** @ Эхо от echo% 1 звонок mvn -f pom.xml test -Dtest =% 1 exit ** – Vigneshwaran