使用testng xml并行运行LeanFT测试

时间:2018-05-15 05:30:16

标签: testng leanft

我正在尝试使用Chrome浏览器中的TestNg XML并行运行LeanFT测试。

它运行正常,但它会在同一浏览器中打开每个测试会话,导致登录和注销的cookie出现问题。

示例:

我正在使用parallel="tests" thread-count="2"和来自TestNG XML的测试 使用

在LeanFT中启动浏览器
public Browser getbrowser() {
  Browser browser = null;
  browser = BrowserFactory.launch(BrowserType.CHROME);
  browser.clearCache();
  return browser;
}

因此,每次我从TestNG XML并行运行测试时,所有测试都会在同一浏览器中打开导致cookie问题,因为我在browser.clearCache()方法中getbrowser()

我希望与每个线程并行运行LeanFT测试,打开Chrome窗口的新实例并在同一台机器上并行运行。

如果有人在同一台机器上实现了LeanFT的并行执行,请分享。

1 个答案:

答案 0 :(得分:0)

当您使用BrowserFactory.launch时,在幕后它有点像运行

chrome about:blank

从命令行

。您可以尝试在命令行/终端中执行此操作,并且您将在第一次看到新窗口时打开,但是第二次,第三次等等,它将表示打开的窗口中的新选项卡

这是特定于浏览器的行为。果然,firefox与命令行不同,毫无疑问,.launch也会在firefox上打开一个新的窗口。

要在Chrome中打开新窗口,需要--new-window开关。 LeanFT还没有做好准备(还),你必须自己运行命令。

chrome --new-window www.google.com

我确定你知道如何从Java开始一个过程,但为了完整答案,我在how to start a process from java。基本上:

Process myProcess = Runtime.getRuntime().exec(command);

然后使用BrowserFactory.attach附加到打开的窗口。

如果您必须运行多个实例,则需要单独识别它们。每次递增变量时尝试打开新窗口,如:https://www.google.com/search?q=dummy1

所以:

  1. 窗口1

    开始的过程:chrome --new-window https://www.google.com/search?q=dummy1

    使用说明:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy1 - Google Search").build());
    
  2. 窗口2

    开始的过程:chrome --new-window https://www.google.com/search?q=dummy2

    使用说明:

    BrowserFactory.attach(new BrowserDescription.Builder().title("dummy2 - Google Search").build());
    
  3. <强>等