我是这个“selenium grid + testNG”的新手,并且无法找到解决问题的方法。 Hopw somw将帮助mw。
要求:希望在10个VM中启动100个浏览器(每个VM 10个浏览器)并打开一个页面。所以使用以下代码启动它。
java class:
import com.thoughtworks.selenium.*;
import org.testng.ITestContext;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.*;
public class LaunchBrowser {
public String hubHost;
public int hubPort;
public String presentationServerUrl;
public String canvasID;
private Selenium selenium = null;
public WebDriver driver;
@BeforeSuite
public void setUp(ITestContext context) {
System.out.println("@BeforeSuite called................");
hubHost = context.getCurrentXmlTest().getParameter("hubHost");
hubPort = Integer.parseInt(context.getCurrentXmlTest().getParameter("hubPort"));
presentationServerUrl = context.getCurrentXmlTest().getParameter("presentationServerUrl");
canvasID = context.getCurrentXmlTest().getParameter("canvasID");
System.out.println("hubHost: " + hubHost + " ,hubPort: " + hubPort+ " ,presentationServerUrl: " + presentationServerUrl + " ,canvasID: " + canvasID);
}
@Test(invocationCount = 3)
@Parameters("browser")
public void startBrowser(String browser) {
System.out.println("Browser====>>>"+ browser);
selenium = new DefaultSelenium(hubHost, hubPort, "*"+browser, presentationServerUrl);
selenium.start();
selenium.open(presentationServerUrl);
selenium.windowMaximize();
selenium.type("id=usernameId", "admin");
selenium.type("id=passwordId", "aspect@123");
selenium.click("id=submitId");
selenium.waitForPageToLoad("30000");
selenium.click("id=btnRPToggleId");
selenium.click("id=btnSearchRBId");
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
selenium.click("id="+canvasID);
}
}
的testng.xml
<suite name="Suite1" verbose="1">
<parameter name="hubHost" value="localhost" />
<parameter name="hubPort" value="4444" />
<parameter name="presentationServerUrl" value="http://10.153.22.64:11090" />
<parameter name="canvasID" value="btnSPOepnDashBoard663033f0-2913-11e4-9c0f-a95eb7e2fcf7" />
<test name="FireFox Test">
<parameter name="browser" value="firefox" />
<classes>
<class name="com.aspect.testsLaunchBrowser" />
</classes>
</test>
</suite>
问题:当我执行testNG文件时,浏览器会启动并打开特定页面。但是经过一段时间后,浏览器会被杀死,在我的情况下,它不会发生。
以上是我在上述测试执行后在节点控制台中获得的内容。
03:20:35.898 INFO - Killing Firefox...
03:20:36.195 INFO - Got result: OK on session dad4ea094a0b4763b0c0d62541ce511f
我正在寻找一种方法来实现这一目标,但却找不到解决方案。