【问题标题】:Selenium - Running tests in parallel locallySelenium - 在本地并行运行测试
【发布时间】:2016-11-22 17:15:03
【问题描述】:

我正在尝试在本地并行运行我的 selenium 测试,通过在线阅读我知道我可以使用 TestNG 来做到这一点。 我有以下示例代码,它允许我并行运行 2 个测试。

testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Parallel" thread-count="2" parallel="methods" >
    <test name="testing">
        <classes>
            <class name="Sessions"/>
        </classes>
    </test>
</suite>

Sessions.class

@Test
public void testSessionOne() throws IOException {
    WebDriver driver = new ChromeDriver();
    driver.get("http://www.google.co.uk");
    driver.findElement(By.name("q")).sendKeys("one");
}

@Test
public void testSessionTwo() throws IOException {
    WebDriver driver = new ChromeDriver();
    driver.get("http://www.google.co.uk");
    driver.findElement(By.name("q")).sendKeys("two");
}

这很好用,但是我想使用 PageObjectModel 框架。我稍微改变了测试,所以现在看起来像这样。 (我保留了相同的 testng.xml)。

Sessions.class

public void testSession1() throws IOException{
    WebDriver driver = getDriver();
    open(driver, url);
    enterTextInSearchField(driver, "one");
}

MyMethods.class

public WebDriver getDriver(){
    return new ChromeDriver();
}

public void open(WebDriver driver, String url) {
    driver.get(url);
}

public void enterTextInSearchField(WebDriver driver, String search) {
    driver.findElement(By.name("q")).sendKeys(search);
}

我现在遇到的问题是我需要始终将“驱动程序”作为所有方法的参数传递。如果我不这样做,测试会变得混乱并尝试在同一个浏览器上运行所有内容。 有没有更好的方法可以做到这一点,这样我仍然可以并行运行,而不必将驱动程序作为参数传递?

【问题讨论】:

    标签: java selenium testng


    【解决方案1】:

    您可以查看的选项之一是利用ThreadLocal 变量,其中在@BeforeMethod(或)在org.testng.IInvokedMethodListener#beforeInvocation()(或)在org.testng.IHookable 实现中,您可以使用WebDriver实例化被处理并推入一个ThreadLocal 变量,您的@Test 方法可以弹出并使用它。

    我已经在我的这篇博文中解释了这一点。请看看是否有帮助。

    博客链接:https://rationaleemotions.wordpress.com/2013/07/31/parallel-webdriver-executions-using-testng/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 2017-07-22
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多