基於LINUX平臺的自動化測試的研究與應用
在Linux平臺下,藉助工具或者其他手段實施測試的自動化時,需要關注以下幾點:
(一)各種技術應用的前提。對於在開源社群和一些開源專案中獲得的測試工具,首先需要了解工具適用於哪些型別應用的測試,以及工具釋出後的釋出說明和FAQ。開源的工具通常不像商業工具那樣成熟穩定,因此找出工具的適用範圍以及探索工具的實現程度是進行自動化測試應用的前提。
(二)各種技術應用的環境需求。對於各類工具,需要關注編譯和執行時對各種包和庫及其版本的依賴關係以及對預先安裝的應用的依賴關係。這些在使用者手冊中都有詳盡的說明。
(三)伺服器效能監視器。大部分測試工具沒有提供伺服器端的效能監控功能,測試工程師需要根據實際的需求編寫效能監控指令碼來配合工具的使用。
下面結合曾經參與進行過的Linux平臺下的自動化測試的研究,面向不同類別的測試用例自動化的需求,將主要從功能測試,如GUI測試、命令列客戶端的測試,以及效能測試等幾個方面對Linux平臺下的測試工作的自動化進行分析和說明。
GZW自動化洲試
對於GUI測試的自動化,通常的測試工具所使用的捕捉/回放技術有兩種,一種是通過記錄介面的滑鼠事件(如點選、移動)和鍵盤事件來完成錄製和回放,另外一種則是錄製和回放都是基於控制元件的識別和操作進行的,每個指令碼的執行都是控制元件物件的屬性改變或事件觸發。我們從開源社群可以獲得如上兩種型別的執行於Linux平臺之上的典型測試工具,如Knee和LDTP等。
(一)Xnee工具
在Linux作業系統的xll環境下,Xnee能夠錄製、回放和分發使用者的動作。Xnee的捕捉/回放技術是記錄滑鼠事件和鍵盤事件。進入錄製模式時,Xnee記錄傳送至和來自X server之間的協議資料拷貝,並生成Xneesession檔案。在回放模式下,Xnee讀取Xnee Session中的事件,模仿整個錄製過程(即使用者操作過程)完成和x server之間的通訊,被錄製的應用軟體(Xclient)則接收來自xserver的訊息,完成預設的動作。
(二)LDTP測試工具/框架
Linux Desktop Testing Project(LDTP)測試工具/框架能夠基於使用者在應用介面的選擇進行指令碼的錄製。LDTPI具使用了Gnome環境下的Accessibility庫即輔助選項庫(at-spi)。使用輔助選項能夠獲得應用通過AT-SPI協議提供的關於使用者介面的資訊和介面控制元件的當前狀態或者屬性。LDTPI具/框架的體系結構如下:
AT-SPI的基礎思想就是為使用者介面的視覺化元素提供對應的輔助物件,而錄製完成的每個指令碼的執行都是基於這些輔助物件進行的。對於希望利用LDTPI具進行測試的應用,需要啟用輔助選項。
(三)GUI自動化測試工具的應用
在實際的GUI自動化測試中,LDTPI具應用的場景會更廣泛一些。LDTPI具可以識別視窗中的物件(如按鈕),測試指令碼使用LDTP的API介面,每個API介面對UI物件進行操作存在兩個最基本的入口,即視窗和物件,視窗通過視窗的型別和名稱(即標題)識別,物件通過希望操作的控制元件的型別和名稱(標籤或者關聯的標籤)識別。我們同樣可以通過at-pokel具展現啟用了輔助選項的應用程式視窗的物件及物件屬性。在測試Linux桌面產品和伺服器產品的過程中,使用LDTPI具可以測試任何啟用輔助選項的Gnome應用,如Mozilla,OpenOffice.org、Evolution郵件客戶端,Nautilus檔案瀏覽器等等,此外還可以測試UI介面基於Swing的Java應用,以及KDE4.O上基於QT4.0的應用等等。
而Xneel具所針對的應用程式型別就沒有特別的限制,對於一些簡單的視窗驗證測試和介面的穩定性測試等則比較有效。Xnee相對於基於控制元件方式捕獲和回放的工具而言,不用擔心存在控制元件不能被識別的問題。
(一)各種技術應用的前提。對於在開源社群和一些開源專案中獲得的測試工具,首先需要了解工具適用於哪些型別應用的測試,以及工具釋出後的釋出說明和FAQ。開源的工具通常不像商業工具那樣成熟穩定,因此找出工具的適用範圍以及探索工具的實現程度是進行自動化測試應用的前提。
(二)各種技術應用的環境需求。對於各類工具,需要關注編譯和執行時對各種包和庫及其版本的依賴關係以及對預先安裝的應用的依賴關係。這些在使用者手冊中都有詳盡的說明。
(三)伺服器效能監視器。大部分測試工具沒有提供伺服器端的效能監控功能,測試工程師需要根據實際的需求編寫效能監控指令碼來配合工具的使用。
下面結合曾經參與進行過的Linux平臺下的自動化測試的研究,面向不同類別的測試用例自動化的需求,將主要從功能測試,如GUI測試、命令列客戶端的測試,以及效能測試等幾個方面對Linux平臺下的測試工作的自動化進行分析和說明。
GZW自動化洲試
對於GUI測試的自動化,通常的測試工具所使用的捕捉/回放技術有兩種,一種是通過記錄介面的滑鼠事件(如點選、移動)和鍵盤事件來完成錄製和回放,另外一種則是錄製和回放都是基於控制元件的識別和操作進行的,每個指令碼的執行都是控制元件物件的屬性改變或事件觸發。我們從開源社群可以獲得如上兩種型別的執行於Linux平臺之上的典型測試工具,如Knee和LDTP等。
(一)Xnee工具
在Linux作業系統的xll環境下,Xnee能夠錄製、回放和分發使用者的動作。Xnee的捕捉/回放技術是記錄滑鼠事件和鍵盤事件。進入錄製模式時,Xnee記錄傳送至和來自X server之間的協議資料拷貝,並生成Xneesession檔案。在回放模式下,Xnee讀取Xnee Session中的事件,模仿整個錄製過程(即使用者操作過程)完成和x server之間的通訊,被錄製的應用軟體(Xclient)則接收來自xserver的訊息,完成預設的動作。
(二)LDTP測試工具/框架
Linux Desktop Testing Project(LDTP)測試工具/框架能夠基於使用者在應用介面的選擇進行指令碼的錄製。LDTPI具使用了Gnome環境下的Accessibility庫即輔助選項庫(at-spi)。使用輔助選項能夠獲得應用通過AT-SPI協議提供的關於使用者介面的資訊和介面控制元件的當前狀態或者屬性。LDTPI具/框架的體系結構如下:
AT-SPI的基礎思想就是為使用者介面的視覺化元素提供對應的輔助物件,而錄製完成的每個指令碼的執行都是基於這些輔助物件進行的。對於希望利用LDTPI具進行測試的應用,需要啟用輔助選項。
(三)GUI自動化測試工具的應用
在實際的GUI自動化測試中,LDTPI具應用的場景會更廣泛一些。LDTPI具可以識別視窗中的物件(如按鈕),測試指令碼使用LDTP的API介面,每個API介面對UI物件進行操作存在兩個最基本的入口,即視窗和物件,視窗通過視窗的型別和名稱(即標題)識別,物件通過希望操作的控制元件的型別和名稱(標籤或者關聯的標籤)識別。我們同樣可以通過at-pokel具展現啟用了輔助選項的應用程式視窗的物件及物件屬性。在測試Linux桌面產品和伺服器產品的過程中,使用LDTPI具可以測試任何啟用輔助選項的Gnome應用,如Mozilla,OpenOffice.org、Evolution郵件客戶端,Nautilus檔案瀏覽器等等,此外還可以測試UI介面基於Swing的Java應用,以及KDE4.O上基於QT4.0的應用等等。
而Xneel具所針對的應用程式型別就沒有特別的限制,對於一些簡單的視窗驗證測試和介面的穩定性測試等則比較有效。Xnee相對於基於控制元件方式捕獲和回放的工具而言,不用擔心存在控制元件不能被識別的問題。
從使用的情況來看,各個工具也都因為實現技術而存在一定的缺陷,如兩個工具均不能插入驗證點,從而不能實現用例級別的結果驗證;LDTP對於介面的個別元素捕獲不到以及不能對不支援輔助選項的應用進行測試等等;而Xneel具生成的指令碼可編輯性差,同時由於錄製生成的指令碼中的事件和螢幕座標相關,因此當出現視窗彈出位置發生變化等問題時,就需要考慮回放時應該如何來處理這些變化。
相關文章
- 基於 HttpRunner 的介面自動化測試平臺宣講 (已落地)HTTP
- 基於 RF 的 WEB 版自動管理測試平臺Web
- 自動化測試平臺
- 基於 LangChain 的自動化測試用例的生成與執行LangChain
- UI 自動化測試平臺UI
- API自動化測試平臺,高效實現對API的自動化測試API
- [opendx] 基於 appium 的移動端 UI 自動化測試平臺-介紹篇APPUI
- 基於 Htte 的 API 自動化測試API
- API自動化測試平臺,支援場景化的API測試API
- 各位測試大佬可有實用的介面自動化測試平臺推薦?
- 基於 HttpRunner + Django + Vue + Element UI 的介面自動化測試平臺,生產可用HTTPDjangoVueUI
- Django 介面自動化測試平臺Django
- 基於PhantomFlow的自動化UI測試UI
- swift - 基於TCL的自動化測試框架Swift框架
- 自動化測試平臺設計與實現(一)
- 關於 SAP UI5 應用的自動化測試方法UI
- Windows平臺自動化測試工具基於的一些技術簡介(筆記)Windows筆記
- Web自動化測試平臺設計與落地-概覽Web
- 基於postman的api自動化測試實踐PostmanAPI
- 基於GUI的自動化軟體測試工具GUI
- 自動化功能測試平臺TestComplete的分散式測試教程(三)分散式
- 自動化功能測試平臺TestComplete的分散式測試教程(二)分散式
- 自動化裝置測試與自動化測試的區別
- 手工測試用例與自動化測試用例的區別
- 自動化測試平臺設計與實現(五、用例執行的統計與展示)
- 手把手教你基於 JMeter 開發一個自動化測試平臺 (1)JMeter
- 手把手教你基於 JMeter 開發一個自動化測試平臺 (2)JMeter
- Robot Framework自動化測試框架核心指南-如何做好自動化測試平臺框架的設計Framework框架
- 無人值守自動化效能測試平臺
- 基於LangChain手工測試用例轉Web自動化測試生成工具LangChainWeb
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 基於LangChain手工測試用例轉App自動化測試生成工具LangChainAPP
- 基於AI的移動端自動化測試框架的設計與實踐AI框架
- 開源免費的自動化測試平臺推薦
- 一種基於 cypress 的 UI 自動化測試框架UI框架
- 自動化測試在國際軟體測試中的應用
- 基於 Springboot+vue 的介面自動化平臺Spring BootVue
- 介面自動化測試的覆蓋和 Diff 平臺的悖論