Selenium (并行)使用TextNG.XML套件在TestNG中进行交叉浏览

Selenium (并行)使用TextNG.XML套件在TestNG中进行交叉浏览,selenium,selenium-webdriver,testng,Selenium,Selenium Webdriver,Testng,要通过TestNG@Parameter执行交叉浏览 我们必须通过@Parameter注释并在标记中定义变量值 案例:当我们有多个.XML套件,并且每个.XML套件包含5个或7个或10多个测试脚本时 在这种情况下,我们必须通过类的重复为每个浏览器定义参数值。如果有50个测试类,那么向前一步,那么if将定义总共150次,这一点都没有意义 <suite name="Suite"> <test name="ChromeTest"> <paramete

要通过TestNG@Parameter执行交叉浏览

我们必须通过@Parameter注释并在标记中定义变量值

案例:当我们有多个.XML套件,并且每个.XML套件包含5个或7个或10多个测试脚本时

在这种情况下,我们必须通过类的重复为每个浏览器定义参数值。如果有50个测试类,那么向前一步,那么if将定义总共150次,这一点都没有意义

<suite name="Suite">
    <test name="ChromeTest">
        <parameter name="browser" value="chrome" />
        <classes>
            <class name="Demos.Demo01" />
            <class name="Demos.Demo02" />
            <class name="Demos.Demo03" />
            <class name="Demos.Demo04" />
        </classes>
    </test>
    <!-- Test -->
    <test name="FirefoxTest">
        <parameter name="browser" value="Firefox" />
        <classes>
            <class name="Demos.Demo01" />
            <class name="Demos.Demo02" />
            <class name="Demos.Demo03" />
            <class name="Demos.Demo04" />
        </classes>
    </test>
    <test name="EdgeTest">
        <parameter name="browser" value="edge" />
        <classes>
            <class name="Demos.Demo01" />
            <class name="Demos.Demo02" />
            <class name="Demos.Demo03" />
            <class name="Demos.Demo04" />
        </classes>
    </test>
    <!-- Test -->
</suite>
<!-- Suite -->

请分享有效的管理方法


TestNG或Selenium中是否有其他方法来定义并行浏览范围,以便在本地系统上进行交叉浏览?除了(Selenium Grid)

您可以使用包而不是类来执行所有测试,而不是提及每个类:

<test name="ChromeTest" parallel="none" preserve-order="true">
    <parameter name="browser" value="chrome" />
    <packages>
        <package name="Demos"  />
    </packages>
</test>
<test name="EdgeTest" parallel="none" preserve-order="true">
    <parameter name="browser" value="edge" />
    <packages>
        <package name="Demos"  />
    </packages>
</test>

您可以使用包而不是类来执行所有测试,而不是提及每个类:

<test name="ChromeTest" parallel="none" preserve-order="true">
    <parameter name="browser" value="chrome" />
    <packages>
        <package name="Demos"  />
    </packages>
</test>
<test name="EdgeTest" parallel="none" preserve-order="true">
    <parameter name="browser" value="edge" />
    <packages>
        <package name="Demos"  />
    </packages>
</test>

可以用包执行。它按预期工作。可以使用包执行。它像预期的那样工作。
@DataProvider
public Object[][] getData(ITestContext context) {
    String parameter = context.getCurrentXmlTest().getLocalParameters().get("browser");
    String[] browsers = parameter.split(",");
    Object[][] returnValues = new Object[names.length][1];
    int index = 0;
    for (Object[] each : returnValues) {
        each[0] = browsers[index++].trim();
    }
    return returnValues;
}