qileilove

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

          自動化測試框架Selenium 入門

          1.什么是selenium
            selenium是ThoughtWork的一款開源測試框架。
            下載selenium2.0lib包,點擊http://code.google.com/p/selenium/downloads/list
            這是官方文檔:http://seleniumhq.org/docs/
            2.為什么選擇selenium
            自動化測試工具有很多了,QTP作為商業軟件功能強大。但是要把QTP整合到已有的測試平臺上面非常困難,selenium非常容易的可以整合到已有的測試平臺上面去。如果你是一個剛剛不如職場的新人不懂程序代碼上手selenium有點困難,selenium需要一定的程序開發能力。為以后的測試平臺長遠考慮,故選用selenium測試框架。
            selenium Java環境基本配置
            1.安裝java虛擬機JDK1.5版本以上。
            2.下載安裝火狐瀏覽器,并安裝。
            3.下載selenium支持火狐瀏覽器的IDE,通過這個IDE可以使用selenium語言編寫腳本也可錄制操作腳本。(不是必須安裝IDE)
            4.安裝MyEclipse開發環境,并配置MyEclipse的環境。
            3.selenium的基本使用
            1.在Myeclipse建立一個JavaProject項目名稱自定義。
            2.將下載的selenium-server-standalone-x.xx.x.jar,導入到項目的Reference Libraries中。
            3.從IDE中導出的測試腳本加入工程中。
            4.在注解@Test中可以編寫自動化測試步驟或腳本了。
            選擇元素
            WebElement element = driver.findElement(By.id("passwd-id"));
            在輸入框中輸入內容:
            element.sendKeys(“test”);
            將輸入框清空:
            element.clear();
            獲取輸入框的文本內容:
            element.getText();
            找到下拉選擇框的元素:
            Select select = new Select(driver.findElement(By.id("select")));  選擇對應的選擇項:
            上傳文件的元素操作:
            WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));
            String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";
            adFileUpload.sendKeys(filePath);
            Windows 和 Frames之間的切換
            一般來說,登錄后建議是先:
            driver.switchTo().defaultContent();
            切換到某個frame:
            driver.switchTo().frame("leftFrame");
            從一個frame切換到另一個frame:
            driver.switchTo().frame("mainFrame");
            切換到某個window:
            driver.switchTo().window("windowName");
            調用Java Script
            Web driver對Java Script的調用是通過JavascriptExecutor來實現的,例如:
            JavascriptExecutor js = (JavascriptExecutor) driver;
            js.executeScript("(function(){inventoryGridMgr.setTableFieldValue('"+ inventoryId + "','" + fieldName + "','"
            + value + "');})()");


          頁面等待
            頁面的操作比較慢,通常需要等待一段時間,頁面元素才出現,但webdriver沒有提供現成的方法,需要自己寫。
            等一段時間再對頁面元素進行操作:
          public void waitForPageToLoad(longtime) {
          try {
          Thread.sleep(time);
          } catch (Exceptione) {
          }
          }
            在找WebElement的時候等待:
          public WebElementwaitFindElement(By by) {
          returnwaitFindElement(by, Long.parseLong(CommonConstant.GUI_FIND_ELEMENT_TIMEOUT),Long
          .parseLong(CommonConstant.GUI_FIND_ELEMENT_INTERVAL));
          }
          public WebElementwaitFindElement(By by, long timeout, long interval) {
          long start = System.currentTimeMillis();
          while (true) {
          try {
          return driver.findElement(by);
          } catch(NoSuchElementException nse) {
          if (System.currentTimeMillis()- start >= timeout) {
          throw newError("Timeout reached and element[" + by + "]not found");
          } else {
          try {
          synchronized(this) {
          wait(interval);
          }
          } catch(InterruptedException e) {
          e.printStackTrace();
          }
          }
          }
          }
          }
            4.selenium注意點
            1.啟動瀏覽器,如果不是默認安裝需要指定啟動路徑 System.setProperty("webdriver.firefox.bin", PrivateDataSource.fireFoxPath);
            2.driver在每次結束的時候都需要退出使用driver.quit();可以把driver產生的零時文件刪除掉,如果直接關閉瀏覽器或driver.close();那么零時文件不會被刪除,會
            一直存在在你的C盤中,非常耗資源。
            5.自動化測試策略
            目前項目繁多而非產品那樣的專業化,如果每一個項目都做自動化測試那么相對的工作量繁重,質量參差不齊無法很好的控制。
            自動化測試針對項目應注重以下點進行實施:
            1.項目進度督促使用自動化測試核心模塊核心流程是否正常。
            2.把控自動化測試質量,如果質量不過關還不如不做自動化測試。
            3.進行并行開發策略,開發人員根據界面設計進行功能開發,測試人員根據界面設計進行自動化腳本開發。
            4.通過jenkins持續集成平臺,每次開發人員或測試人員提交代碼都會自動去執行一偏測試腳本,把執行中出現的問題暴露出來,讓開發人員及時修改。
            通過學習使用selenium自動化測試框架,了解到測試不是簡單的測試工作,她摻雜了項目管理,需求分析,人際溝通協調等等技能,需要不斷的實踐增強能力勝任更加嚴峻的項目工作。

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

          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 芦山县| 大冶市| 淅川县| 辽中县| 五台县| 贵港市| 乡宁县| 永和县| 苍山县| 吴旗县| 呈贡县| 房产| 横山县| 温泉县| 临沧市| 宜良县| 叶城县| 于田县| 石楼县| 阿克苏市| 绥滨县| 鹤岗市| 名山县| 通州市| 门源| 娄底市| 建湖县| 安化县| 崇义县| 丽江市| 古交市| 莆田市| 棋牌| 蚌埠市| 巩留县| 武邑县| 辽宁省| 南通市| 安徽省| 衡阳县| 思茅市|