首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用testng并行运行LeanFT测试

使用testng并行运行LeanFT测试
EN

Stack Overflow用户
提问于 2018-05-15 13:30:16
回答 1查看 309关注 0票数 0

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

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

示例:

我使用parallel="tests" thread-count="2"从TestNG XML运行测试,并使用以下命令启动LeanFT浏览器

代码语言:javascript
复制
public Browser getbrowser() {
  Browser browser = null;
  browser = BrowserFactory.launch(BrowserType.CHROME);
  browser.clearCache();
  return browser;
}

因此,每次我从cookies并行运行测试时,所有测试都会在同一个浏览器中打开,从而导致TestNG问题,就像我在getbrowser()方法中使用browser.clearCache()一样。

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

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

EN

回答 1

Stack Overflow用户

发布于 2018-05-29 16:26:15

当你使用BrowserFactory.launch的时候,它就像是在后台运行

chrome about:blank

从命令行。您可以尝试在命令行/终端中执行此命令,您将看到第一次,一个新窗口将打开,但第二次,第三次,以此类推,它将意味着在打开的窗口中有一个新的标签。

这是特定于浏览器的行为。果不其然,火狐与命令行不同,难怪.launch也会在火狐上打开一个新的窗口。

要在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. Window 1

要启动的进程:chrome --new-window https://www.google.com/search?q=dummy1

使用说明:

BrowserFactory.attach(新的BrowserDescription.Builder().title("dummy1 -BrowserFactory.attach BrowserDescription.Builder 2

要启动的进程:chrome --new-window https://www.google.com/search?q=dummy2

使用说明:

BrowserFactory.attach(新的BrowserDescription.Builder().title("dummy2 -谷歌new

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

https://stackoverflow.com/questions/50342908

复制
相关文章

相似问题

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