Как запустить один тестовый пример в нескольких экземплярах браузера параллельно без сетки селена - PullRequest
0 голосов
/ 20 апреля 2019

Я настраиваю фреймворк и хочу запустить один метод тестирования (нажав URL, а затем выполнить некоторые операции), в нескольких экземплярах браузера параллельно (например: нажатие на URL-адрес путем одновременного открытия ~ 5 экземпляров браузера Chrome)

Ранее я мог запускать разные методы тестирования параллельно, но я хочу запускать один и тот же тест несколько раз одновременно (параллельно)

GoogleTest.java

@Test(invocationCount=2)
public void hitUrl() throws Exception {
    WebDriver driver = getDriver();
    driver.get("https://google.com");
}

TestNG.xml

<suite thread-count="2" verbose="2" name="Gmail Suite"
    annotations="JDK" parallel="methods">

    <test name="Google_Test">
        <classes>
            <class name="big.GoogleTest">
                <methods>
                    <include name="hitUrl" />
                </methods>
            </class>
        </classes>
    </test>

Я ожидаю открыть два экземпляра браузера Chrome одновременно, но они запускаются в одном экземпляре браузера один за другим.

1 Ответ

0 голосов
/ 22 апреля 2019

С @Test(invocationCount= int Values) он будет запускать ваш код в том же браузере для указанных значений.

вы можете создать узел для каждого раза, когда вы хотите запустить класс, а затем распараллелить на test.Вы также хотели бы переместить свои атрибуты распараллеливания на узел <suite>.Например:

TestNG.xml

<suite name="ParallelTestingGoogle" verbose="1" parallel="tests" thread-count="5">
    <test name="1st">
        <classes>
            <class name="packageName.className"/>
        </classes>
    </test>
    <test name="2nd">
        <classes>
            <class name="packageName.className" />
        </classes>
    </test>
    <test name="3rd">
        <classes>
            <class name="packageName.className" />
        </classes>
    </test>
    <test name="4th">
        <classes>
            <class name="packageName.className" />
        </classes>
    </test>
    <test name="5th">
        <classes>
            <class name="packageName.className" />
        </classes>
    </test>
</suite>

enter image description here

JAVA:

public class TC1 {
    WebDriver driver;

    @Test
    public void testCaseOne() {
        // Printing Id of the thread on using which test method got executed
        System.setProperty("webdriver.chrome.driver", "your ChromeDriver path");
        driver = new ChromeDriver();
        driver.get("https://www.google.com");
    }
}
...