Selenium:在不同的浏览器上运行相同的测试

时间:2015-11-17 06:35:46

标签: java selenium-webdriver webdriver selenium-grid2 parallel-testing

我想在不同的浏览器(Firefox,Chrome和Safari)上运行相同的测试。为此,我在测试中使用参数化。如果浏览器是chrome运行chrome,依此类推。

{% if obj|hasattr:"might_not_exist" %}我已指定并行运行测试,并在几个testng.xml标记下重复相同的测试。

如果我要运行这么多测试怎么办?我将在<test>标签中复制粘贴相同的测试。哪个看不到最佳解决方案。

我该如何解决这个问题?

以下是我的尝试:

<test>

2 个答案:

答案 0 :(得分:0)

如果您确定要为所有三种浏览器运行所有测试,那么您可能会稍微更改一下设计。

为不同的测试用例创建多个测试类。在xml test tags中,将不同的测试类名称作为参数传递。

在参数化测试类中为每个接受类名作为参数的浏览器编写三个@test方法。现在使用Reflections,您可以在每个@test方法中调用正确的测试方法。

答案 1 :(得分:0)

这里需要修理两件事,问题就解决了。

首先:更新TestNG.xml文件以包含浏览器名称

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Parallel test suite" parallel="tests">
<test name="Firefox Test">
    <parameter name="browser" value="Firefox" />
    <classes>
        <class name="ParallelBrowser.SameTestDifferentBrowsers" />
    </classes>
</test>
<test name="Chrome Test">
    <parameter name="browser" value="Chrome" />
    <classes>
        <class name="ParallelBrowser.SameTestDifferentBrowsers" />
    </classes>
</test>
<test name="Safari Test">
    <parameter name="browser" value="safari" />
    <classes>
        <class name="ParallelBrowser.SameTestDifferentBrowsers" />
    </classes>
</test>

第二:应在浏览器中安装并启用Safari浏览器扩展程序,并且不应将其保留在路径中。

所以只需在Java代码文件中注释以下行

//System.setProperty("webdriver.safari.driver",      
       //System.getProperty("user.dir") + "/lib/browsers/SafariDriver.safariextz");
相关问题