Selenium用戶指南 - 第三章 Selenium IDE[6]

目錄    上一頁    下一頁

調試

調試意味着在測試案例中查找和修復錯誤。這是測試案例開發的常規組成部分。

We won’t teach debugging here as most new users to Selenium will already have some basic experience with debugging. If this is new to you, we recommend you ask one of the developers in your organization.

我們在這裏不會講授調試,因爲大多數Selenium的新用戶應該已經有調試方面的基本經驗。如果對你來說是全新的,我們推薦向你組織的其他開發人員求教。

斷點和起點

Selenium IDE支持斷點的設置,和從測試案例內部的任何點啓動和停止運行中的測試案例的能力。也就是說,可以運行到測試案例中間的指定命令,在該點檢查測試案例的行爲。要做到這點,在需要檢查的命令的前一個命令上設置一個斷點。

要設置一個斷點,選擇一個命令,右點,然後從上下文菜單選擇切換斷點(Toggle Breakpoint)。然後點擊運行(Run)按鈕運行測試案例,從開始到斷點。

有時候運行一個測試案例,從中間的某個地方到測試案例的結束,或開始點後面的某個斷點是有用的。例如,假定你的測試案例首先登錄到Web站點,然後執行一系列的測試,而你正在嘗試調試這些測試中的一個。不管怎樣,你僅僅需要登錄一次,但你需要不斷地重複運行你的測試,當你正在開發它們。你可以登錄一次,然後運行你的測試案例,從你的測試登錄部分後面的一個開始點。那將防止你不得不每次重新運行你的測試時需要手動地註銷。

要設置一個起點,選擇一個命令,右點,然後從上下文菜單選擇設置/清除啓動點(Set/Clear Start Point)。然後點擊運行(Run)按鈕執行測試從起點開始。

單步通過一個測試案例

要執行一次執行一個命令地執行(單步“Step through”)測試,遵循下面的步驟:

    從工具欄,用運行(Run)按鈕啓動測試案例。

_images/chapt3_img09_Run.png

    用暫停(Pause)按鈕立即暫停執行測試案例。

_images/chapt3_img10_Pause.png

    重複地選擇單步執行(Step)按鈕。

_images/chapt3_img12_Step.png

查找(Find)按鈕

查找(Find)按鈕用於看一看,在瀏覽器中當前顯示的頁面上的那個UI元素,被使用在目前選擇的Selenium命令。這是有用的,當爲一個命令的第一個參數構造定位器的時候(參見Selenium命令一章的定位器節)。它可以與任何一個標識Web頁面上的一個UI元素的命令一起使用,例如,click,clickAndWait,type,以及某個assert和verify命令,包括其他的。

從表(Table)視圖,選擇任何帶有定位器參數的命令。點擊查找(Find)按鈕。現在觀看Web頁面:應該有一個亮綠色的矩形包圍着由定位器參數指定的元素。

頁面源代碼調試

時常,當調試一個測試案例時,你只需要看看頁面的源代碼(你正在試圖測試的Web頁面的HTML)去確定問題。Firefox讓這個變得很容易。只需要右點Web頁面,選擇“View-〉Page Source”。HTML將打開在一個分離的窗口。使用它的搜索功能(Edit-〉Find)進行關鍵字搜索,找到你正試圖測試的UI元素的HTML。

替代地,僅僅選擇你希望察看源代碼的部分Web頁面。然後右點Web頁面,選擇查看選擇源代碼(View Selection Source)。在這種情況下,分離的HTML窗口將只包含少量的源代碼,你選擇的部分會高亮顯示。

定位器助手

無論何時Selenium IDE錄製一個定位器類型的參數,它將存儲附加的信息,那個允許用戶去查看其它可能的定位器類型的參數,可用於替代的。這個特徵是非常有用的,對於學習更多的有關定位器的知識,也是時常需要的,可以幫助人們去構造一個不同於錄製的類型的定位器類型。

定位器助手被提供在Selenium IDE窗口上,作爲一個在目標(Target)域的右手端可訪問的下拉列表(只有當目標域包含一個錄製的定位器類型參數時才顯示)。下面是一個快照,顯示一個命令的下拉列表內容。注意下拉列表的第一列提供候選的定位器,第二列指示每一個候選者的類型。

_images/chapt3_img23_IDE_Locator_Assistance.png

編寫一個測試集

一個測試集是一個顯示在IDE最左邊的窗格的測試案例的集合。測試集窗格可以手動地打開或關閉,通過選擇這個窗格的右邊的半腰的小點。

測試集窗格會被自動打開,當一個存在的測試集被打開,或者當用戶從文件(File)菜單選擇新建測試案例(New Test Case)。在這種情況下,新的測試案例將立即出現在前一個測試案例的下面。

Selenium IDE仍然不支持裝載一個已經存在的測試案例進入一個測試集。希望通過增加一個已經存在的測試案例來創建或修改一個測試集的用戶,必須手工編輯一個測試集文件。

一個測試集文件是一個HTML文件,包含一個單列的表。在<tbody>節的每行的每個單元格,包含一個到測試案例的鏈接。下面的一個示例是一個包含四個測試案例的測試集。


<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Sample Selenium Test Suite</title>
</head>
<body>
    <table cellpadding="1" cellspacing="1" border="1">
        <thead>
            <tr><td>Test Cases for De Anza A-Z Directory Links</td></tr>
        </thead>
    <tbody>
        <tr><td><a href="./a.html">A Links</a></td></tr>
        <tr><td><a href="./b.html">B Links</a></td></tr>
        <tr><td><a href="./c.html">C Links</a></td></tr>
        <tr><td><a href="./d.html">D Links</a></td></tr>
    </tbody>
    </table>
</body>
</html>

註釋

測試案例文件應該不必與調用它們的測試集文件在一個地方。在Mac OS和Linux系統,正是如此。然而在編寫本文檔時,一個bug會阻止Windows用戶將測試案例文件放置在調用它們的測試集放置的其他地方。

用戶擴展

用戶擴展是允許一個人創建他或她自己的自定義或特徵去增加附加功能的Javascript文件。時常以自定義命令的形式,儘管擴展不限於附加自定義命令。

有大量的用戶創建的有用的擴展

重要:此節已經過時 - 我們將很快修訂

或許所有Selenium IDE擴展中最流行的擴展是,以while循環和基本條件語句的形式提供流控制的擴展。該擴展是goto_sel_ide.js。有關如何使用該擴展提供的功能的示例,參見擴展的作者創建的頁面

要安裝這個擴展,可在Selenium IDE的選項菜單中,打開選項對話框,在“General”選項頁的Selenium Core extensions域添加擴展文件在本地計算機的路徑名稱。

_images/chapt3_img32_Extensions_install.png

在選擇OK按鈕後,你必須關閉和重新打開Selenium IDE,以便IDE讀取擴展文件。任何對擴展做出的改變也需要你關閉和重新打開Selenium IDE。

有關編寫你自己的擴展的信息,可以在Selenium參考文檔的底部找到。

格式化

格式化(Format)在選項(Options)菜單下,允許你選擇一種語言用於保存和顯示測試案例。默認是HTML。

如果你將使用Selenium RC運行測試案例,格式化功能用於轉換你的測試案例到一種編程語言。選擇一種你用來開發你的測試程序的語言,諸如,Java,PHP。然後簡單地使用導出測試案例(File =〉Export Test Case As)存儲測試案例。你的測試案例會被轉換成你選擇的語言的一系列函數。基本上,Selenium IDE會爲你生成支持你的測試的程序代碼。

另外,要注意如果生成的代碼不適合你的需要,你可以通過編輯一個定義生成過程的配置文件修改它。每一種支持的語言都有可編輯的配置。這個在選項對話框的Format標籤下(Options =〉Options...)。

註釋

在編寫本文當時,Selenium的開發者還沒有提供對這個功能的支持。不管怎樣作者已經可以以受限的方式修改C#格式化,並且可以很好地工作。

在不同的瀏覽器執行Selenium IDE測試

儘管Selenium IDE僅可在Firefox運行測試,然而用Selenium IDE開發的測試可以運行在其他的瀏覽器中,通過使用一個簡單的命令行接口調用Selenium RC服務器。該主題在Selenium RC一章的運行Selenese測試節討論。

故障排除

下面是一列描述使用Selenium IDE產生問題的常見來源的圖像/說明:

使用本格式,表(Table)視圖不可得到

這個消息可能偶爾會顯示在表(Table)選項頁,當Selenium IDE啓動時。變通方法是關閉和重新打開Selenium IDE。要獲取更多的信息參見issue 1008。如果你不能可靠地重現它,請提供詳細信息以便我們可以修復。

錯誤裝載測試案例: 命令沒有發現

你使用File =〉Open試圖打開一個測試集文件 ,使用File =〉Open Test Suit代替。

一個增強的要求已經發出,以便改進這個錯誤消息。參見issue 1010.

_images/chapt3_img28_Trouble_timing.png

這種類型的錯誤可能表示一個與時間相關的問題,例如在你的命令中由定位器指定的元素沒有被完全裝載,當命令執行的時候。試着在命令前放置一個pause 5000,以確定問題是否真的與時間相關。如果是這樣,考慮使用一個適當的waitFor*或*AndWait命令在這個失敗的命令前。

_images/chapt3_img29_Trouble_param.png

當你試圖使用一個變量替代時失敗,如上面的open命令的情形,這表示你還沒有實際地創建這個你試圖存取值的變量。這有時候是由於放置這個變量在值(Value)域,當它應該在目標(Target)域時出現,反之亦然。在上面的示例中,store命令的兩個參數錯誤地以相反地順序放置。對任何Selenese命令,第一個要求的參數必須在目標(Target)域,第二個要求的參數(如果存在)必須在值(Value)域。

error loading test case: [Exception... “Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFileInputStream.init]” nresult: “0x80520012 (NS_ERROR_FILE_NOT_FOUND)” location: “JS frame :: chrome://selenium-ide/content/file-utils.js :: anonymous :: line 48” data: no]

在你的測試集中的一個測試案例不能被找到。確信這個測試案例位於測試集指示的位置。另外,確信你實際的測試案例文件具有.html擴展名,包括在文件名稱中,以及引用它們的測試集文件中。

一個增強的要求已經發出,以便改進這個錯誤消息。參見issue 1011.

_images/chapt3_img26_Trouble_space.png

Selenium IDE是空格敏感的!在命令前後的一個額外空格會引起命令不可識別。

該缺陷已經被提升。參見issue 1012.

_images/chapt3_img27_Trouble_extension.png

你的擴展文件的內容還沒有被Selenium IDE讀取。確信你指定了適當的到擴展文件的路徑名,在選項對話框的Selenium Core extensions域。另外,Selenium IDE必須重新啓動,在對擴展文件或對Selenium Core extensions域的內容作出任何改變後。

_images/chapt3_img30_Trouble_collapsed.png

這種類型的錯誤看起來好像是Selenium IDE在不該產生錯誤的地方生成了一個失敗。實際上,Selenium IDE是正確的,因爲在這個測試案例中實際的值不匹配指定的值。問題是日誌文件錯誤消息會壓縮一系列的兩個或多個空格成一個空格,這是容易令人混淆的。在這個示例中,verifyTitle的參數在單詞 “Selenium” 和“web” 之間有兩個空格,而頁面的實際標題只有一個空格。因此,Selenium IDE正確地產生了一個錯誤,但是一個誤導性質的錯誤。

該缺陷已經被提升。參見issue 1013


© Copyright 2008-2012, Selenium Project. Last updated on Feb 02, 2012.
目錄    上一頁    下一頁

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