Java tutorial
/* * (C) Copyright 2017 Boni Garcia (http://bonigarcia.github.io/) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package io.github.bonigarcia.wdm.test; import static java.util.concurrent.Executors.newFixedThreadPool; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import io.github.bonigarcia.wdm.WebDriverManager; /** * Stability test. * * @author Boni Garcia (boni.gg@gmail.com) * @since 1.0.0 */ public class StabilityTest { private static final int NUM_THREADS = 10; @Test public void test() throws InterruptedException { CountDownLatch latch = new CountDownLatch(NUM_THREADS); ExecutorService executorService = newFixedThreadPool(NUM_THREADS); for (int i = 0; i < NUM_THREADS; i++) { executorService.submit(() -> { try { WebDriverManager.chromedriver().setup(); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); WebDriver driver = new ChromeDriver(options); driver.get("https://bonigarcia.github.io/selenium-jupiter/"); String title = driver.getTitle(); System.out.println(title); driver.quit(); } finally { latch.countDown(); } }); } latch.await(); executorService.shutdown(); } }