qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          試玩Selenium的Grid

            Selenium Grid是一個分布式測試平臺,它可以通過一個server端的hub服務來控制多個用于提供Selenium腳本運行環境的client端,起到并發在多臺機器上運行的作用。整個結構是由一個hub節點和若干個代理節點組成的。hub用于管理各個代理節點的注冊和狀態信息,并接受遠程客戶端代碼的請求調用,然后把請求的命令再轉給代理節點來執行,同時需要一個hub和至少一個代理節點。除此之外,grid還支持一種更友好的功能,其可以根據用例中啟動測試的類型來相應的把用例轉給符合匹配要求的測試代理。
            下面說下本人如何搭建環境的:
            1. 準備三臺機器(一臺為主機[提供hub服務],另兩臺為從機[client端])
            2. 三臺機器都安裝好JDK環境(可參見本人的“Selenium2.0測試工程的搭建”)
            3. 三臺機器上都確保有selenium server的jar包
            本人在主機上創建主節點,并在主機和兩臺從機上各創建一個子節點。最終的現象是在這三臺機器上并發運行。
            (1) 啟動主節點
            在主機上打開命令行,cd至selenium server jar包所在的路徑下,用命令啟動主節點hub服務:java -jar selenium-server-standalone-2.39.0.jar -role hub 啟動的默認端口是4444,如果要改變這個端口號,則命令后加上-port XXXX,如端口號改為6666,命令為java -jar selenium-server-standalone-2.39.0.jar -role hub -port 6666
            (2) 啟動子節點
            在從機上打開命令行,cd至selenium server jar包所在的路徑下,用命令啟動子節點的服務:java -jar selenium-server-standalone-2.39.0.jar -role node -hub http://10.1.3.59/grid/register 啟動的默認端口是5555。其中,10.1.3.45為hub所在主機的IP地址。由于本人在主機上創建了主節點和一個子節點,所以這兩個節點的port應不同。
            啟動完成后,可以在主機上打開瀏覽器http://localhost:4444/grid/console,來查看各節點的狀態。
            最后,編輯代碼(主節點的port為4444,各子節點的port為5555,主機IP為10.1.3.59,兩臺從機IP分別為10.1.3.197和10.1.3.200):
          public string[] strServer = new string[3];
          public const string strWeb = "http://www.baidu.com";
          public void TestGrid()
          {
          strServer[0] = "http://10.1.3.197:5555/wd/hub";
          strServer[1] = "http://10.1.3.200:5555/wd/hub";
          strServer[2] = "http://10.1.3.59:5555/wd/hub";
          int nThreadCount = 3;
          Thread[] threads = new Thread[nThreadCount];
          for (int i = 0; i < nThreadCount; i++)
          {
          threads[i] = new Thread(new ThreadStart(OpenWeb));
          threads[i].Name = i.ToString();
          }
          foreach(Thread t in threads)
          {
          t.Start();
          }
          Thread.Sleep(60000);
          }
          public void OpenWeb()
          {
          DesiredCapabilities dc = DesiredCapabilities.InternetExplorer();
          int nId = Convert.ToInt32(Thread.CurrentThread.Name);
          Uri seleniumServer = new Uri(strServer[nId]);
          Uri addr = new Uri(strWeb);
          RemoteWebDriver driver = new RemoteWebDriver(seleniumServer, dc);
          driver.Navigate().GoToUrl(addr);
          }

          posted on 2014-01-22 10:05 順其自然EVO 閱讀(348) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东乡县| 宁都县| 漳平市| 张掖市| 尼勒克县| 眉山市| 乌兰浩特市| 浦江县| 疏附县| 航空| 大港区| 永丰县| 上虞市| 湖口县| 林甸县| 望奎县| 固阳县| 桃园市| 民丰县| 贡嘎县| 荥经县| 佛山市| 于都县| 婺源县| 新沂市| 东城区| 汝州市| 安多县| 宿迁市| 荣昌县| 乌兰察布市| 河北区| 通许县| 陆丰市| 内丘县| 抚顺市| 恩施市| 乐昌市| 和田县| 陕西省| 永善县|