首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨浏览器测试.如何配置testng.xml中测试的并行执行

跨浏览器测试.如何配置testng.xml中测试的并行执行
EN

Stack Overflow用户
提问于 2017-12-12 10:50:17
回答 1查看 647关注 0票数 0

我想使用TestNG在不同的浏览器上执行并行测试。这是我的testng.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<suite name="Parallel Tests" verbose="2" parallel="tests" thread-count="4">

        <!--Set test parameters to execute test in Mozilla Firefox browser on Windows platform. -->

        <test name="Linux+firefox Test1" parallel="classes" thread-count="2">

                <parameter name="platform" value="LINUX"/>
                <parameter name="browser" value="firefox"/>
                <parameter name="url" value="http://hh.de/"/>
                <parameter name="version" value="58.0b7"/>

            <classes>
                <class name="suchen.Portalsuche"/>
                <class name="suchen.HVV"/>
            </classes>
        </test>

        <!-- Set test parameters to execute test in Google Chrome browser on Windows platform. -->
        <test name="Linux+chrome Test1" parallel="classes" thread-count="2">

                <parameter name="platform" value="LINUX"/>
                <parameter name="browser" value="chrome"/>
                <parameter name="url" value="http://hh.de/"/>
                <parameter name="version" value="62.0.3202.62"/>

            <classes>
                <class name="suchen.Portalsuche"/>
                <class name="suchen.HVV"/>
            </classes>
        </test>

</suite>

它启动第一个浏览器(Mozilla ),但既不执行这两个测试,也不启动第二个浏览器(Google)。

这也是我目前用于启动这些浏览器的代码片段

代码语言:javascript
复制
@Parameters({ "platform", "browser", "url", "version" })
    @BeforeTest(alwaysRun = true)
    public void setup(String platform, String browser, String url, String version) throws MalformedURLException {
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setPlatform(org.openqa.selenium.Platform.LINUX);
        System.setProperty("java.net.preferIPv4stack", "true");
        caps.setCapability("SeleniumTests", "redhat5 && amd64");

        if (browser.equalsIgnoreCase("firefox")) {
            System.out.println("Executing on Firefox");
            String Hub = "http://localhost:4444/wd/hub";
            caps = DesiredCapabilities.firefox();
            caps.setBrowserName("firefox");
            System.setProperty("webdriver.gecko.driver", "/opt/geckodriver.exe");

            driver = new RemoteWebDriver(new URL(Hub), caps);
            driver.manage().window().maximize();
            driver.navigate().to(url);

        } else if (browser.equalsIgnoreCase("chrome")) {
            System.out.println("Executing on Chrome");
            String Hub = "http://localhost:4444/wd/hub";
            caps = DesiredCapabilities.chrome();
            caps.setBrowserName("chrome");
            ChromeOptions options = new ChromeOptions();
            System.setProperty("webdriver.chrome.driver", "/opt/chromedriver.exe");
            caps.setCapability(ChromeOptions.CAPABILITY, options);

            options.addArguments("--start-maximized");
            driver = new RemoteWebDriver(new URL(Hub), caps);
            driver.navigate().to(url);
        }
    }

谢谢你的帮助。我很感激。

EN

回答 1

Stack Overflow用户

发布于 2017-12-13 11:08:52

删除测试标记级别的并行属性,并将套件标记级别上的线程计数重置为2。

testNG xml应该如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<suite name="Parallel Tests" verbose="2" parallel="tests" thread-count="2">

        <!--Set test parameters to execute test in Mozilla Firefox browser on Windows platform. -->

        <test name="Linux+firefox Test1" >

                <parameter name="platform" value="LINUX"/>
                <parameter name="browser" value="firefox"/>
                <parameter name="url" value="http://hh.de/"/>
                <parameter name="version" value="58.0b7"/>

            <classes>
                <class name="suchen.Portalsuche"/>
                <class name="suchen.HVV"/>
            </classes>
        </test>

        <!-- Set test parameters to execute test in Google Chrome browser on Windows platform. -->
        <test name="Linux+chrome Test2" >

                <parameter name="platform" value="LINUX"/>
                <parameter name="browser" value="chrome"/>
                <parameter name="url" value="http://hh.de/"/>
                <parameter name="version" value="62.0.3202.62"/>

            <classes>
                <class name="suchen.Portalsuche"/>
                <class name="suchen.HVV"/>
            </classes>
        </test>

</suite>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47770776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档