<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Selenium 使用介紹

    Selenium 是 thoughtworks公司的一個集成測試的強大工具。最近參與了一個系統移植的項目,正好用到這個工具,

    把一些使用心得分享給大家,希望大家能多多使用這樣的強大的,免費的工具,來保證我們的質量。

    Selenium 的文檔現存的不少,不過都太簡單了。使用Selenium的時候,我更多的是直接去看API文檔,好在API不錯,

    一個一個看,就能找到所需要的 :-)   官方網站:http://www.openqa.org/selenium/

    好,下面進入正題!

    一、Selenium 的版本

    Selenium 現在存在2個版本,一個叫 selenium-core, 一個叫selenium-rc 。

    selenium-core 是使用HTML的方式來編寫測試腳本,你也可以使用 Selenium-IDE來錄制腳本,但是目前Selenium-IDE
    只有 FireFox 版本。

    Selenium-RC 是 selenium-remote control 縮寫,是使用具體的語言來編寫測試類。

    selenium-rc 支持的語言非常多,這里我們著重關注java的方式。這里講的也主要是 selenium-rc,因為個人還是喜歡這種
    方式 :-)

     二、一些準備工作

    1、當然是下載 selenium 了,到 http://www.openqa.org/selenium/ 下載就可以了,記得選擇selenium-rc 的版本。

    2、學習一下 xpath 的知識。有個教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
         一定要學習這個,不然你根本看不懂下面的內容!

    3、安裝 jdk1.5

     三、selenium-rc 一些使用方法

    在 selenium-remote-control-0.9.0\server 目錄里,我們運行 java -jar selenium-server.jar
    之后你就會看到一些啟動信息。要使用 selenium-rc ,啟動這個server 是必須的。

    當然,啟動的時候有許多參數,這些用法可以在網站里看看教程,不過不加參數也已經足夠了。

    selenium server 啟動完畢了,那么我們就可以開始編寫測試類了!

    我們先有個概念,selenium 是模仿瀏覽器的行為的,當你運行測試類的時候,你就會發現selenium 會打開一個

    瀏覽器,然后瀏覽器執行你的操作。

     好吧,首先生成我們的測試類:

    java 代碼

     

    public class TestPage2 extends TestCase {    
      
    private Selenium selenium;    
       
      
    protected void setUp() throws Exception {    
         String url 
    = “http://xxx.xxx.xxx.xxx/yyy”;    
         selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort    
                                    (), 
    "*iexplore", url);    
         selenium.start();    
                    
         
    super.setUp();                         
                
      }
        
       
      
    protected void tearDown() throws Exception {    
                
          selenium.stop();    
          
    super.tearDown();    
                    
       
      }
        
       
    }
       

     

    代碼十分簡單,作用就是初始化一個 Selenium 對象。其中:
    url : 就是你要測試的網站
    localhost:  可以不是localhost,但是必須是 selenium server 啟動的地址
    *iexplore :  可以是其它瀏覽器類型,可以在網站上看都支持哪些。

    下面我就要講講怎么使用selenium 這個對象來進行測試。

    1、測試文本輸入框

    假設頁面上有一個文本輸入框,我們要測試的內容是 在其中輸入一些內容,然后點擊一個按鈕,看看頁面的是否跳轉
    到需要的頁面。

    public void test1() {    
                
        selenium.open(
    "http://xxx.xxx.xxx/yyy");    
                
        selenium.type(
    "xpath=//input[@name='userID']""test-user");    
        selenium.click(
    "xpath=//input[@type='button']");    
        selenium.waitForPageToLoad(
    "2000");    
        assertEquals(selenium.getTitle(), 
    "Welcome");    
    }
       


    上面的代碼是這個意思:
    1、調用 selenium.open 方法,瀏覽器會打開相應的頁面
    2、使用 type 方法來給輸入框輸入文字
    3、等待頁面載入
    4、看看新的頁面標題是不是我們想要的。

    2、測試下拉框

    java 代碼
    public void test1() {        
                    
        selenium.open(
    "http://xxx.xxx.xxx/yyy");        
                    
        selenium.select(
    "xpath=//SELECT[@name='SBBUSYO']""index=1");    
        selenium.click(
    "xpath=//input[@type='button']");        
        selenium.waitForPageToLoad(
    "2000");        
        assertEquals(selenium.getTitle(), 
    "Welcome");        
    }
          

    可以看到,我們可以使用 select 方法來確定選擇下拉框中的哪個選項。
    select 方法還有很多用法,具體去看看文檔吧。

    3、測試check box

    java 代碼

    public void test1() {            
                        
        selenium.open(
    "http://xxx.xxx.xxx/yyy");            
                        
        selenium.check(
    "xpath=//input[@name='MEICK_000']");      
        selenium.click(
    "xpath=//input[@type='button']");            
        selenium.waitForPageToLoad(
    "2000");            
        assertEquals(selenium.getTitle(), 
    "Welcome");            
    }
           


    我們可以使用 check 方法來確定選擇哪個radio button

    4、得到文本框里的文字

    java 代碼

        

    assertEquals(selenium.getValue("xpath=//input[@name='WNO']"), "1");   

     

    getValue 方法就是得到文本框里的數值,可不是 getText 方法,用錯了可就郁悶了。

    5、判斷頁面是否存在一個元素

    java 代碼

        

    assertTrue(selenium.isElementPresent("xpath=//input[@name='MEICK_000']"));  

     

    一般這個是用來測試當刪除一些數據后,頁面上有些東西就不會顯示的情況。

    6、判斷下拉框里選擇了哪個選項

    java 代碼

        

    assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");   

     

    這個可以用來判斷下拉框顯示的選項是否是期望的選項。

    7、如果有 alert 彈出對話框怎么辦?

    這個問題弄了挺長時間,可以這樣來關閉彈出的對跨框:

    java 代碼
    if(selenium.isAlertPresent()) {    
       
       selenium.getAlert();    
       
    }
       

    其實當調用 selenium.getAlert() 時,就會關閉 alert 彈出的對話框。
    也可以使用 System.out.println(selenium.getAlert()) 來查看對跨框顯示的信息。

    在測試的時候,有的人會顯示許多alert 來查看運行時的數據,那么我們可以用下面的方式來關閉那些 alert:

    java 代碼
    while(selenium.isAlertPresent()) {        
           
       selenium.getAlert();        
           
    }
        

    8、如何測試一些錯誤消息的顯示?

    java 代碼
    assertTrue(selenium.getBodyText().indexOf("錯誤消息")>=0);   

    切記: getBodyText 返回的時瀏覽器頁面上的文字,不回包含html 代碼的,如果要顯示html 代碼,用下面這個:

    java 代碼
    System.out.println(selenium.getHtmlSource());   

    以上就是最常用的幾個方法了,例如 click, type, getValue 等等。
    還有就是一定要學習 xpath, 其實xpath 也可以有“與、或、非”的操作:

    java 代碼

    四、其他

    selenium 還有更多的用法,例如彈出頁面等等。當面對沒見過的測試要求時,我最笨的方法就是按照api文檔一個一個找,
    好在不多,肯定能找到。

    selenium.check("xpath=//input[(@name='KNYKBN')and(@value='Y')]"); 


    posted on 2007-11-24 10:03 々上善若水々 閱讀(2389) 評論(0)  編輯  收藏 所屬分類: 軟件測試

    主站蜘蛛池模板: 伊人久久五月丁香综合中文亚洲| 久久久久一级精品亚洲国产成人综合AV区| 国产综合免费精品久久久| 女人18毛片水真多免费播放| 久久久亚洲精品国产| 日韩免费的视频在线观看香蕉| 一二三四免费观看在线电影| 亚洲国产av美女网站| 亚洲w码欧洲s码免费| 亚洲视频在线观看一区| 91av视频免费在线观看| 亚洲成人午夜电影| 成年在线网站免费观看无广告 | 国产黄色片在线免费观看| 亚洲丶国产丶欧美一区二区三区| 日韩a毛片免费观看| 国产亚洲AV无码AV男人的天堂| 亚洲毛片基地4455ww| 大学生a级毛片免费观看| 国产精品亚洲一区二区三区在线观看| 国产无限免费观看黄网站| 亚洲精品无码久久久久sm| 99re免费在线视频| 亚洲色精品三区二区一区| 又粗又大又猛又爽免费视频| 黄色一级毛片免费看| 亚洲AV无码一区东京热久久| 99国产精品永久免费视频| 丰满亚洲大尺度无码无码专线 | 中文字幕亚洲综合久久| 中文字幕无码视频手机免费看| 区久久AAA片69亚洲| 18禁无遮挡无码国产免费网站| 国产一精品一aⅴ一免费| 两个人看的www免费| 亚洲另类古典武侠| 亚洲精品亚洲人成在线观看下载 | 免费av片在线观看网站| 亚洲同性男gay网站在线观看| baoyu777永久免费视频| 亚洲午夜精品一区二区公牛电影院 |