【问题标题】:Running LeanFT test parallely using testng xml使用 testng xml 并行运行 LeanFT 测试
【发布时间】:2018-05-15 05:30:15
【问题描述】:

我正在尝试在 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 问题,因为我在 getbrowser() 方法中有 browser.clearCache()

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

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

【问题讨论】:

  • 请编辑您的问题并添加更多上下文。您的示例代码是什么样的,您面临的错误是什么等,不清楚您在问什么。

标签: testng leanft


【解决方案1】:

当你使用BrowserFactory.launch时,在幕后有点像跑步

chrome about:blank

从命令行。您可以尝试在命令行/终端中执行此操作,您会看到第一次会打开一个新窗口,但第 2 次、第 3 次等则意味着打开的窗口中会出现一个新选项卡。

这是特定于浏览器的行为。果然,firefox 与命令行不同,难怪.launch 也会从leaft 打开一个新的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());
    

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2018-03-24
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多