來源:互聯網
上載者:User
關鍵字
雲計算
web應用程式
Selenium
翻譯驗證測試
&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp;通過介紹分層次的測試框架,結合實例,展現如何快速搭建可以複用的基礎測試腳本(Test Case),並通過測試元件(Test Suite)對測試腳本的關聯,實現可以複用腳本的863.html">自動化測試流程。 同時,介紹了 Selenium IDE 的一些擴展應用及優缺點的分析。 最後,介紹一個作者實現的小工具,説明解決 Selenium IDE 不能一次運行多個測試元件的問題。
翻譯驗證測試是指在產品集成翻譯檔之後,由專業的翻譯人員檢查翻譯在產品的上下文語境中是否準確,是否能方便最終使用者的理解和使用。 考慮到翻譯人員產品操作的熟練程度和成本等原因,通常是由產品部門提供語言的截圖給翻譯人員進行檢查。 軟體產品的翻譯驗證測試對提高語言使用者的滿意度和更好的將產品推向國際市場具有十分重要的意義。 然而由於以下原因,翻譯驗證測試的截圖工作通常不太容易進行自動化操作:
為了儘快的發佈產品,翻譯進入產品到產品最終發佈的時間間隔通常被安排的很短,限制了翻譯驗證測試的自動化腳本準備和執行的時間; 基於語言產品的自動化腳本通常需要依賴已經存在的翻譯,而這些翻譯在每個版本中都可能變化, 大大增加了自動化腳本執行的不穩定性; 翻譯驗證測試重點關注新功能或者變化的功能,這些功能本身就不穩定,為它們準備自動化腳本,會增加修改和維護的成本; 同樣由於翻譯驗證測試重點關注新功能或者變化的功能, 之前準備好的已有功能的自動化腳本不容易被覆用;
從上面的介紹我們可以看到,為翻譯驗證測試準備功能強大的自動化測試並不合適。 然而,翻譯驗測試又需要在多個語言(通常至少是 20 多個語言)上重複進行,這些測試的步驟相同,急需自動化的方法提高效率。 那麼是否有羽量級的自動化方法能夠被運用於翻譯驗證測試呢? 對於基於 Web 的應用程式而言,答案是肯定的。 良好測試框架結合 Selenium IDE 腳本就可以輕鬆實現這一目標。
分層次的測試框架
在介紹分層次的測試框架之前,首先我們將介紹在 Selenium IDE 中測試元件(Test Suite)和測試腳本(Test Case)之間的關係。 測試腳本包含各種可運行的命令以及命令相關的目標物件和參數,它是 Selenium IDE 中進行完整測試的最小單位。 測試元件是多個測試腳本的集合,運行一個測試元件可以連續運行其包含的多個測試腳本。 圖 1 給出了 Selenium IDE 中測試元件和測試腳本之間的關係圖。
圖 1. Selenium IDE 中測試元件和測試腳本之間的關係
如果用一個測試腳本在翻譯驗證測試中完成截取多張截圖的任務,截圖速度可以有一定提高,但是由於測試腳本是 Selenium IDE 中進行完整測試的最小單位,一個截圖步驟引發的問題會引起整個腳本的執行失敗, 從而導致後續截圖的步驟受到影響。 另外,由於翻譯驗證測試會在測試的多個階段根據翻譯修改變化而截取驗證特定的軟體介面,如果在一個測試腳本中進行多張截圖的工作,將無法方便的指定需要截圖的範圍,而且執行多餘的步驟也會影響測試的效率。 更重要的是,如果一個測試腳本用來截取多張圖片,這一過程中會存在很多相同的操作步驟,如果一個步驟需要修改可能會需要在多個腳本中修改多次,這樣會大大增加修改和維護自動化腳本的難度。
為了實現可複用的自動化腳本,我們需要將要自動化測試截圖的過程進行分解:最小的部分是使用者進行的最基本的操作(例如點擊「登錄」按鈕的操作),多個基本操作組成的一個完整的可複用的測試過程作為一個測試腳本(例如以使用者 admin 登錄到主介面的過程,或者截取一張編號為 001 的圖片的過程),最後使用測試元件將多個測試腳本關聯起來執行,形成翻譯驗證測試中截取一張圖片的完整過程。 這樣每個測試腳本都可以被多個測試元件所調用,而只需要修改一次測試腳本就可以使變化被反映到所有調用該測試腳本的測試元件中。 圖 2 給出了多個測試元件調用同一個測試腳本的示意圖。
圖 2. 多個測試元件調用同一個測試腳本的示意圖
通過上面的分析,就形成了如下圖所示的測試基本架構。
最下層的 Selenium IDE 命令語句,例如打開某個頁面(命令「Open」),鍵入字元(命令「Type」)等,它們是正確完成測試步驟的基礎; 上一層是測試執行的基本操作,例如輸入使用者名和密碼等,這些基本操作必須通過 Selenium IDE 命令語句完成; 再上一層是可以被多個測試元件所調用的測試腳本,它是由多個基本操作所組成的單個測試的最小單位; 最上一層則是可以一次運行多個測試腳本的測試元件, 在翻譯驗證測試中我們將會把它作為截取一張圖片的單位。
圖 3. 測試基本架構的匯流排示意圖