Selenium grid2+ testng併發式 困惑

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真的適合性能測試嗎?我突然有這樣的困惑?望有人賜教,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章