Selenium grid2+ testng并发式 困惑

来源:互联网 发布:a10攻击机 知乎 编辑:程序博客网 时间:2024/05/18 01:04

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真的适合性能测试吗?我突然有这样的困惑?望有人赐教,谢谢。

0 0
原创粉丝点击