云計算平臺是最近各大公司都在火熱研究的產品,各大公司在二次開發(fā)國外開源云計算平臺,如:OpenNebula、Openstack、CloudStack、Eucalyptus等。同時在測試方向中,自動化測試也是悄然的改變這測試的方式,那么問題來了,自動化測試+云計算平臺=?是否可做?可做多少?云計算中的虛擬機操作是否可做?記得剛接觸云計算平臺的時候,一個云計算平臺領導說過結論性的話:云計算做不了自動化,心里一陣想法油然而生。
那么在云計算平臺中自動化測試給很多人帶來了困擾,很多略懂一二自動化知識的人會果斷認為云計算平臺中不能執(zhí)行自動化測試,否定云計算中自動化測試的重要性!其實不然。
下面我就要提出一套云計算中的解決方案:
首先要面臨的一件令人頭疼的事就是如果使用現(xiàn)在版本穩(wěn)定開源且功能強大的selenium WebDriver來進行PC機中的web功能測試以及兼容性測試,那么根據(jù)selenium原理,它是只識別GUI中的Web頁面對象,如果要操作windows對象,可以使用javascript中的DOM來實現(xiàn)對windows桌面的操作,然而云計算平臺中往往出現(xiàn)在了兩種混合方式:即嵌套在web頁面端的虛擬機,并且測試中需要很多驗證是需要操作嵌套在web頁面中的虛擬機,操作的對象即位Web頁面中的windows對象或者linux等等不同操作系統(tǒng)的對象,拿鏡像為windows的虛擬機頁面來說,首先分析定位對象的時候,虛擬機嵌套在網頁中,屬于web頁面對象,但是虛擬機是作為整體web對象來出現(xiàn)的,(如:OpenNebula中的虛擬機點開之后是div下面的canvas對象,在canvas對象中,所有任何對象都是不能單獨識別和操作)但是selenium中無法識別嵌套在web頁面中的虛擬機,以及操作頁面中的虛擬機中的各種命令行或者是windows對象,那么此時,很多人會否定自動化對這塊的業(yè)務能力的處理操作。
下面就是解決方案的重點:
針對云計算平臺,各種各樣的對象出現(xiàn)在測試產品中:
針對純傳統(tǒng)web頁面對象,selenium實現(xiàn)GUI定位和操作;對于頁面中嵌套的windows對象,使用sikuli這種圖形定位識別完成自動化測試;對于純正的windows對象,使用sikuli圖形識別或者使用selenium中提供的執(zhí)行javascript方式,通過javascript來完成。這樣幾種方式同時出現(xiàn)在一套自動化測試工具或者平臺中,各種優(yōu)勢互補,就可以順利的完成云計算平臺帶來的各種各樣的虛擬機下的各種操作系統(tǒng)中各種輸入或者點擊以及驗證事件!
以上的文章獻給正在云計算平臺中做自動化測試框架或者做自動化測試方案的人,僅以解決云計算平臺中類似網頁中嵌套的虛擬機中各種操作以及類似介于web GUI和windows之外的測試產品的問題。
PS:有人會提出使用坐標點識別的自動化測試框架完成對測試產品的自動化測試就可以完成上述產品中提出的云計算中網頁中嵌套的虛擬機中的各種操作,但是坐標點解決方案在云測試中,各種尺寸的分辨率以及各種型號的電腦顯示器以及各種操作系統(tǒng)平臺,這種坐標點方式,就不能很好的完成跨操作系統(tǒng)、跨瀏覽器等測試了!只適合單機版的測試,和現(xiàn)在云測發(fā)展背道而馳!除非你愿意在每套腳本執(zhí)行環(huán)境中重新定位驗證一下坐標點,那么你的自動化測試腳本可不是一處編寫,處處運行,而是處處編寫,處處運行!工作量可想而知。
博文出處:http://www.exceptionhelp.com/autotestdetail?articleId=88