您的位置:首页 > 其它

Selenium grid2+ testng并发式 困惑

2015-08-12 16:57 357 查看
1. 启动selenium hub

2. 启动selenium node(假设有2 node)

清单1. testng.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Suite1" parallel="methods" preserve-order="true" >

<test name="SeleGrid2">

<parameter name="seleniumHost" value="192.168.1.112"/>

<parameter name="seleniumPost" value="4444"/>

<parameter name="bs" value="*ie"/>

<classes>

<class name="server.TestDemo" />

<methods>

<include name="test022222" />

-->

</methods>

</classes>

</test> <!-- Test -->

</suite> <!-- Suite -->

清单2: TestDemo.java( Package name: server)

public class TestDemo {

public static WebDriver wd;

private static int sum = 0;

@BeforeClass

public void SetUp(){

long id = Thread.currentThread().getId();

System.out.println("Set Up: "+ Thread.currentThread().getStackTrace()[1].getMethodName()+", Thread# " + id);

}

@AfterClass

public void TearDown(){

long id = Thread.currentThread().getId();

System.out.println("Tear Down: "+ Thread.currentThread().getStackTrace()[1].getMethodName()+", Thread# " + id);

}

@BeforeTest

public void BeforeTest(){

long id = Thread.currentThread().getId();

System.out.println("Test Case: "+ Thread.currentThread().getStackTrace()[1].getMethodName()+", Thread# " + id);

}

@AfterTest

public void AfterTest(){

long id = Thread.currentThread().getId();

System.out.println("Test Case: "+ Thread.currentThread().getStackTrace()[1].getMethodName()+", Thread# " + id);

}

@Test(invocationCount = 15, threadPoolSize = 10)

@Parameters({"seleniumHost", "seleniumPost", "bs"})

public void test022222(String Host, String Port, String browser) throws MalformedURLException, InterruptedException, UnknownHostException{

sum ++;

System.out.println("sum = " + sum);

long id = Thread.currentThread().getId();

System.out.println("Test Case: "+ Thread.currentThread().getStackTrace()[1].getMethodName()+", Thread# " + id);

File file = new File("C:/Program Files (x86)/Internet Explorer/IEDriverServer.exe");

System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

//String hubURL = "http://192.168.1.112:4444/wd/hub";

String hubURL ="http://" +Host + ":" +Port + "/wd/hub" ;

System.out.println( "hubURL = " + hubURL);

DesiredCapabilities aDesiredCap = new DesiredCapabilities();

aDesiredCap.setBrowserName("internet explorer");

aDesiredCap.setVersion("");

aDesiredCap.setPlatform(Platform.WINDOWS);

aDesiredCap.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);

//wd = new InternetExplorerDriver();

wd = new RemoteWebDriver(new URL(hubURL),aDesiredCap);

wd.get("http://www.qq.com");

Thread.sleep(3000);

System.out.println(wd.getCurrentUrl());

wd.quit();

}

}

运行testng.xml

Consle output:

[TestNG] Running:

E:\maven\SeleGrid2\testng_method.xml

Test Case: BeforeTest, Thread# 1

Set Up: SetUp, Thread# 11

sum = 1

Test Case: test022222, Thread# 16

hubURL = http://192.168.1.112:4444/wd/hub
sum = 2

Test Case: test022222, Thread# 15

hubURL = http://192.168.1.112:4444/wd/hub
sum = 3

Test Case: test022222, Thread# 20

hubURL = http://192.168.1.112:4444/wd/hub
sum = 4

Test Case: test022222, Thread# 12

hubURL = http://192.168.1.112:4444/wd/hub
sum = 5

Test Case: test022222, Thread# 13

hubURL = http://192.168.1.112:4444/wd/hub
sum = 6

Test Case: test022222, Thread# 19

hubURL = http://192.168.1.112:4444/wd/hub
sum = 7

Test Case: test022222, Thread# 18

hubURL = http://192.168.1.112:4444/wd/hub
sum = 8

Test Case: test022222, Thread# 14

hubURL = http://192.168.1.112:4444/wd/hub
sum = 9

Test Case: test022222, Thread# 21

hubURL = http://192.168.1.112:4444/wd/hub
sum = 10

Test Case: test022222, Thread# 17

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/
sum = 11

Test Case: test022222, Thread# 18

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/
sum = 12

Test Case: test022222, Thread# 14

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/
sum = 13

Test Case: test022222, Thread# 12

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/
sum = 14

Test Case: test022222, Thread# 21

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/
sum = 15

Test Case: test022222, Thread# 20

hubURL = http://192.168.1.112:4444/wd/hub http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/ http://www.qq.com/
Tear Down: TearDown, Thread# 11

Test Case: AfterTest, Thread# 1

===============================================

Suite1

Total tests run: 15, Failures: 1, Skips: 0

===============================================

总结现象: case运行invocationCount 次数,最大并发数threadPoolSize ,

这15次,被随机分配到2 node上面运行,但是存在这样的问题: 其中node运行用例的时间很慢,网页请求响应很慢,几乎等不到相应。卡死状态

假设只有一个node,运行15次,响应正常,执行用例15次,正常结束,可是这不是我们想要的并发场景。

selenium grid2真的适合性能测试吗?我突然有这样的困惑?望有人赐教,谢谢。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: