我正在尝试在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;
}因此,每次我从cookies并行运行测试时,所有测试都会在同一个浏览器中打开,从而导致TestNG问题,就像我在getbrowser()方法中使用browser.clearCache()一样。
我想并行运行LeanFT测试,每个线程打开新的Chrome窗口实例,并在同一台机器上并行运行。
如果有人在同一台机器上实现了LeanFT的并行执行,请分享。
发布于 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
所以:
要启动的进程: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
https://stackoverflow.com/questions/50342908
复制相似问题