?

云計算環境下的軟件測試自動化技術研究

2018-11-29 02:33李菲楊君曹陽顧問
現代計算機 2018年31期
關鍵詞:腳本軟件測試瀏覽器

李菲,楊君,曹陽,顧問

(三江學院計算機科學與工程學院,南京 210012)

0 引言

云計算以虛擬化、面向服務的計算和網格計算等成熟技術為基礎,以大規模資源共享為目標,采用數量較多的高性能PC或小型服務器等較為便宜的硬件構建分布式服務器集群,提供可用性、可伸縮性都很強的計算服務[1]??蛻舳烁鶕陨硇枰?,通過瀏覽器等標準程序訪問發布在互聯網之上、以服務形式提供的計算能力、軟件、存儲服務、中間件平臺等。云計算的服務方式包括基礎設施即服務IaaS、平臺即服務PaaS、軟件即服務SaaS三類典型的服務方式。

1 云測試

云測試是基于云計算的一種測試方案,有效利用云計算環境資源對其他軟件進行測試。一般分為兩種:一是利用云端服務器中的測試軟件進行測試,使用者通過遠程桌面鏈接到服務器內的虛擬機,直接打開虛擬機內的測試軟件和Web瀏覽器來測試本機或公網上的Web軟件;二是利用云端的服務器的環境系統,用于兼容性或國際化測試,例如服務提供商提供手機測試平臺,對手機App進行各類操作系統、硬件的兼容測試。這些云測試平臺的優點是平臺和瀏覽器覆蓋很廣,用戶按需付費。但商用云測試平臺的缺陷也較明顯:

(1)云平臺的安全性,基于信息安全的考慮,企業產品只會在本地私有云中進行測試,商用云測試平臺無法滿足要求;

(2)測試中出現的故障,使用商用云平臺無法調試,測試中出現的錯誤可能是測試腳本的錯誤,也可能是被測系統SUT的錯誤,不能較好地區分;

(3)基于UI的自動化測試通常會有不穩定的情況,本地編輯好的自動化腳本可能問題較多,無法在商用云平臺上正常運行;

(4)商用云測試平臺只能做一些共性的測試,針對小型產品特點靈活定制的工作較少,或收費昂貴。敏捷開發要求快速響應,持續集成、持續測試這些關鍵開發手段必須在云測試平臺中體現。

基于上述的問題,應根據產品實際特點選擇云測試平臺,盡管商用云測試平臺兼容性強、覆蓋廣泛,可以覆蓋所有的瀏覽器和平臺,但互聯網的公司產品發布較快,實際根據帕累托80/20原則,在各產品測試中只需要覆蓋主流瀏覽器、平臺。

2 云測試自動化流程

隨著敏捷實踐被越來越多地采用,在每次迭代中重新執行手動測試成為了一種不可持續的模式。沒有足夠的時間,無法增加更多人力執行手動測試。自動化測試則是相對手動測試而存在的一個概念,通過各類測試工具、測試套件、測試腳本,部署測試環境,具有良好的可操作性、可重復性和高效率等特點,是軟件測試不可分割的一部分[2]。測試自動化主要應用在性能測試、兼容性測試、回歸測試等方面,貫穿在整個軟件測試階段。云計算環境下的軟件測試自動化過程包括:根據測試需求制定測試計劃,設計測試腳本;根據云資源部署自動化測試環境并執行測試;分析得到的測試報告并反饋給相關人員。

在性能測試中,測試環境配置要求較高,測試人員在測試前需要花費較長時間搭建一個性能環境,且無法固化測試環境,測試結束后環境即被拆除,下一輪測試前又要重新搭建,因此能快速提供性能測試環境就顯得非常重要。借助云資源自動化創建和配置測試環境,可以將測試準備工作從幾小時或幾天縮短至幾分鐘,也減少了由于測試環境問題、錯誤地安裝依賴軟件,以及其他引入問題的手動流程所導致的虛假錯誤數量。

在兼容性測試中,測試重點在功能兼容和軟件兼容,被測軟件與操作系統、Web瀏覽器或其他操作環境應保持兼容,遵守軟件之間的標準和規范,與其他平臺進行交互共享信息。兼容性測試需要使用多套測試環境,基于云的自動化測試,可使用云資源迅速搭建多套測試環境,使測試不受限于物理資源的束縛。

3 云測試平臺

基于上述商用云測試平臺的優缺點,以及云測試自動化的考慮,可以設計一個云測試平臺,它是云計算技術提供測試服務提供的載體,測試提供者將可調用的測試資源部署在服務器上,并向用戶提供調用接口,用戶通過云測試平臺的前端創建測試項目,完成測試計劃管理、測試腳本上傳、測試用例執行和測試結果展現[3]。云測試平臺底層采用虛擬機技術,通過整合物理資源形成虛擬資源池,實現對資源池中虛擬資源的動態調度,在保證資源均衡優化的基礎上,測試平臺提供給測試人員完成回歸測試、性能測試、兼容性測試的自動化工作,同時引入持續測試的思想,利用計劃編排工具有效調度測試任務,完成測試工作。

3.1 平臺架構

設計的云測試平臺共分為5個部分,分別由物理設備、虛擬資源池、云資源管理節點、云測試前臺服務器、用戶Web操作組成。其中前三者屬于IaaS層,提供計算和存儲資源管理虛擬云測試服務器;后兩者屬于PaaS層,使用IaaS資源,面向云測試用戶。云測試平臺架構如圖1所示。

圖1 體系結構圖

云測試平臺的硬件使用兩臺x86架構的PC Server組成,成本較低,后續隨業務發展而動態擴展資源[4]。一臺服務器配置做為控制節點,標記為node1,另外一臺做計算節點,標記為node2。服務器硬件配置CPU為Intel Xeon,內存16GB,硬盤1TB(可擴展為RAID磁盤),網卡為千兆雙網卡。云測試平臺配置云計算管理平臺、虛擬機、操作系統分別采用OpenStack Essex、KVM 1.0、CentOS 7.2。

基于回歸測試、性能測試和兼容性測試的需要,云測試平臺采用開源工具。Selenium是目前主流的Web自動化測試工具,可用于功能測試和系統兼容性測試,Selenium IDE可自動錄制測試步驟,Selenium Grid支持在多臺機器上并行執行測試,測試用例能夠同時在多種操作系統的多種瀏覽器上執行,其中一臺主機(Hub)控制測試用例在其他不同主機(Node)不同瀏覽器下運行[5]。JMeter是開源的性能測試工具代表,可模擬大量并發負載來進行強度測試,分布式環境下的JMeter性能測試會選擇一臺主機(Controller)控制其他主機(Agent)執行測試腳本。出于上述測試自動化調度需要,本系統采用Jenkins持續集成工具,提供持續、自動的構建及測試軟件項目,監控定時執行的任務[6]。

PaaS層的前臺服務器使用Struts2和Hibernate框架,采用 Java JDK 1.7、MySQL 6.0、Tomcat 7。前臺服務器調用OpenStack的API接口獲取IaaS層的消息和運行狀態,用戶通過Web界面進行開啟、關閉虛擬測試服務器等操作實際都是調用API。

3.2 平臺功能結構

云測試平臺按功能劃分為前臺服務器和后臺云管理平臺,前臺服務器提供Web交互界面,測試人員在該界面管理測試腳本、操作測試流程,查看測試結果;后臺管理平臺調度虛擬機、運行測試腳本、反饋測試報告。

前臺服務器的主要功能包括賬戶管理(注冊、登錄、注銷、修改密碼)、測試項目管理(創建測試項目、查詢測試項目、刪除測試項目)、測試腳本管理(添加測試腳本、刪除測試腳本、保存測試腳本、查詢測試腳本)、測試結果管理(測試結果查詢、測試結果下載)。

后臺管理平臺將虛擬機分為測試控制機和測試執行機兩類角色,控制機用于對測試流程的管理,執行機用于執行測試腳本,由多個虛擬化測試環境組成。自動化測試任務通過Jenkins調度自動進行,因此需要在控制機上安裝Jenkins并集成Selenium Grid、JMeter插件,部署 Selenium Hub、JMeter Controller節點;測試執行機上則需要部署Selenium Node和JMeter Agent。當Jenkins中創建的計劃任務被觸發,后臺管理平臺上的測試控制機和測試執行機開始工作,協作完成測試任務。

用戶根據測試計劃和測試場景創建Jenkins相關測試任務,在Web界面創建虛擬機,部署性能測試、回歸測試、兼容性測試等測試環境,編寫調試測試腳本并上傳,后臺管理平臺處于測試準備就緒階段,前后臺消息交互的時序圖如圖2所示。

后臺測試控制機上設定的Jenkins Job定時時間到達,控制機將測試腳本分發到測試執行機上,如果是性能測試任務,則在測試控制機上運行JMeter Controller節點,通過命令行遠程開啟測試執行機上的JMeter Agent,進行分布式測試;如果是Web功能測試或兼容性測試,則在控制機上運行Selenium Hub,通過Hub節點下發操作命令給執行機上的Selenium Node節點,執行Selenium腳本進行測試;測試執行機完成測試后將結果返回給測試控制機,再由控制機傳遞給前臺服務器輸出給用戶。

圖2 前后臺消息交互時序圖

基于以上的流程,在實際Web項目測試中,使用這個云測試平臺,可在Jenkins上創建多個性能測試任務、兼容性測試任務、回歸測試任務,任務從晚間開始自動執行,測試人員第二天上班從Jenkins上查看測試報告,軟件測試流程無人看守,實現了自動測試。

4 結語

本文研究了基于云計算的軟件測試自動化技術,借助OpenStack云計算管理平臺和Web服務,采用任務調度工具Jenkins、開源測試工具Selenium和JMeter設計了一個自動化測試平臺,能自動化完成測試環境部署、測試腳本執行和測試結果輸出,無需人工干預,從而提高開發和測試效率。但從持續集成方面看,還有一些工作未完善,例如可以結合Maven的版本編譯和部署功能完成自動化構建、自動化編譯和自動化測試,實現基于云計算環境的研發版本持續集成和持續改進;測試平臺輸出的Selenium、JMeter測試報告可以更規范更具體,形成郵件自動發送,供測試人員查看。

猜你喜歡
腳本軟件測試瀏覽器
軟件測試方向人才培養“1+X”融合研究
基于OBE的軟件測試課程教學改革探索
航天軟件測試模型構建與應用
微軟發布新Edge瀏覽器預覽版下載換裝Chrome內核
反瀏覽器指紋追蹤
自動推送與網站匹配的腳本
關于 Web 應用系統的軟件測試的研究
舉一反三新編
瀏覽器
愚公移山
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合