自動化測試載入器selenium使用介紹

來源:互聯網
上載者:User

 最近公司Test部門開了個講座介紹如何做好WEB自動化測試,由於我是做開發的,但對測試人員如何工作不是很瞭解,就去聽了下。講座中一個測試載入器還不錯,於是就深入自學了下,內容如下

 

一、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://blog.csdn.net/terryzero/archive/2009/09/06/4523834.aspx
     一定要學習這個,不然你根本看不懂下面的內容!

3、安裝 jdk1.5

 三、selenium-rc 一些使用方法

在 selenium-remote-control-0.9.0/server 目錄裡,我們運行 java -jar selenium-server.jar
之後你就會看到一些啟動資訊。要使用 selenium-rc ,啟動這個server 是必須的。

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

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

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

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

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

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

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

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

 

1、測試文本輸入框

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

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

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

 

其中的selenium 指令碼 firefox外掛程式selenium IDE 來錄製產生。如果你測試IE也可以先用firefox錄製然後經過略微更改便能使用。

 

2、測試下拉框

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

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

 

3、測試check box

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

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

 

4、得到文字框裡的文字

assertEquals(selenium.getValue("xpath=//input[@name='WNO']"), "1");  
getValue 方法就是得到文字框裡的數值,可不是 getText 方法,用錯了可就鬱悶了。

 

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

assertTrue(selenium.isElementPresent("xpath=//input[@name='MEICK_000']"));  
一般這個是用來測試當刪除一些資料後,頁面上有些東西就不會顯示的情況。

 

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

assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");  
這個可以用來判斷下拉框顯示的選項是否是期望的選項。

 

7、如果有 alert 彈出對話方塊怎麼辦?

這個問題弄了挺長時間,可以這樣來關閉彈出的對跨框:
if(selenium.isAlertPresent()) {   
  
   selenium.getAlert();   
  
}  
其實當調用 selenium.getAlert() 時,就會關閉 alert 彈出的對話方塊。
也可以使用 System.out.println(selenium.getAlert()) 來查看對跨框顯示的資訊。

在測試的時候,有的人會顯示許多alert 來查看運行時的資料,那麼我們可以用下面的方式來關閉那些 alert:
while(selenium.isAlertPresent()) {       
      
   selenium.getAlert();       
      
}   


8、如何測試一些錯誤訊息的顯示?
assertTrue(selenium.getBodyText().indexOf("錯誤訊息")>=0);  
切記: getBodyText 返回的時瀏覽器頁面上的文字,不回包含html 代碼的,如果要顯示html 代碼,用下面這個:
System.out.println(selenium.getHtmlSource());  

以上就是最常用的幾個方法了,例如 click, type, getValue 等等。
還有就是一定要學習 xpath, 其實xpath 也可以有“與、或、非”的操作:
selenium.check("xpath=//input[(@name='KNYKBN')and(@value='Y')]");  

 

 以上內容有部分轉載與javaeye

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.