如何在没有硒网格的情况下在多个浏览器实例中并行运行单个测试用例

时间:2019-04-20 15:14:15

标签: java multithreading selenium selenium-webdriver testng

我正在建立一个框架,并希望在多个浏览器实例中并行运行单个测试方法(点击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 :(得分:0)

使用def addlist(): ''' method to add all the number in a list :return:integer ''' input_number = [1, 2, 3, 4, 5] sum = reduce(lambda x, y: x + y, input_number, 10) print("sum is:", sum) return sum ,它将在同一浏览器中运行指定值的代码。

您可以在每次要运行类的时候创建一个节点,然后通过@Test(invocationCount= int Values)进行并行化。您还希望将并行化属性移动到test节点。例如:

TestNG.xml

<suite>

enter image description here

JAVA:

<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>