什么是自動化測試?
自動化測試分為:功能自動化和性能自動化
功能自動化即使用計算機通過編碼的方式來替代手工測試,完成一些重復性比較高的測試,解放測試人員的測試壓力。同時,如果系統有不份模塊更改后,只要通過修改部分代碼的方式來覆蓋這部分修改的內容,大大提高測試效率。但是后期代碼維護需要一定的成本,如果系統屬於表單比較多或者經常修改改動的系統不太適合使用自動化,因為這個維護成本太高;針對於一些相對比較成熟(改動不是很頻繁)的系統和跑回歸測試的系統很適合進行自動化測試。
性能自動化即使用性能測試工具(常用的收費軟件有LoadRunner、QTP,開源的有Jmeter)模擬成千上萬的用戶向系統發送請求,來取得系統性能峰值與瓶頸,但是性能測試的重點並不是在工具的使用上面,而是對工具產生的各種性能報表的性能分析上。需要完成一個完整的性能分析,你需要了解很多知識(計算機組成原理、操作系統、數據庫原理、計算機網絡原理、應用服務器【tomcat】、web server【apache】等)。
幾乎每個項目都會用到性能測試,但是並不是所有的項目都適合自動化測試;然而性能測試需要更強的基礎知識功底,對於半路出家的測試來說有很大難度;對於以后的發展方向都有利有弊吧。
為什么要進行UI自動化測試?
從圖中我們可以看出各階段測試的投入產出比,我們可以看到單元測試的收益是最高的,因為它直接對源代碼進行測試,對某一個if判斷或者一個for循環進行測試,所以收益最高,但是單元測試適不適合測試人員來做呢?答案是不一定適合,因為對於代碼當然是開發者自身最熟悉自己開發的代碼了,如果交給測試人員來測的話,測試人員還得清楚開發者的設計思路,對整個流程的代碼通讀,效率相對低下,所以單元測試在90%以上的公司都是有開發自己完成。
集成/接口測試相對收益率還是可以的,主要完成的是對各個類、接口的測試,對某個類中的add()方法,傳入適當的參數,測試返回結果的正確性。
UI自動化測試的收益最低,那為什么還要進行UI自動化的測試呢,因為最終用戶的操作是在UI層,所以大量的測試勞動力都會集中在UI層進行測試;而且,后期的回歸測試是相當需要多勞動力進行不斷的重復測試的,所以自動化測試就提現出了他的優勢了。
什么是selenium?
Selenium是一款web應用的自動化測試工具,主要用於UI測試;
它的特點有如下幾點:
1.支持多語言:java,python,ruby,PHP
2.多瀏覽器支持:IE、Chrome、Mozila-FireFox
3.開源,免費
4.多平台支持:windows、MAC、Linux
Selenium組成?
Selenium有兩個版本selenium1.0和selenium2.0,現在普遍使用2.0,2.0支持的功能多。
看下selenium1.0的組成構架:
Selenium IDE是一個firefox中的一個插件,用於錄制瀏覽器的操作,進而生成腳本的一款便於初學者使用的工具。局限性是其錄制的腳本不能直接使用,代碼很多的地方需要完善修改。主要是給初學者一個UI自動化的一個認識過程,實際作用不大。
Selenium Grid是一個輔助測試的工具,實現的功能是在多台測試機器上統一執行測試用例。(暫時沒有用到)
Selenium RC是selenium中的核心部件,用於執行測試腳本進而對瀏覽器進行操作。RC由兩個部件組成:Client Libraries和Selenium Server;
Client Libraries中保存的是測試腳本
Selenium Server中使用Launcher來啟動和關閉瀏覽器;在啟動瀏覽器后selenium core被部署到web應用中,core實際上是一個JS函數庫,selenium就是通過這些JS函數對瀏覽器進行操作。
Selenium2.0 = selenium1.0 + webdriver
2.0相比較於1.0的區別是,2.0的selenium使用webdriver來取代了selenium RC的實現方法;
他們的區別是什么:
Selenium RC 在瀏覽器中運行 JavaScript 應用,使用瀏覽器內置的 JavaScript 翻譯器來翻譯和執行selenese 命令(selenese 是 Selenium 命令集合)。
2.0的WebDriver 通過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器。Webdriver支持的頁面操作更多,而且API更簡介,易懂。
Selenium學習前知識儲備及預裝工具
學習selenium需要哪些知識支撐呢?
前端的知識:
HTML--->具體了解下HTML的各個標簽的含義都是什么;
JavaScript--->了解JS的基礎語法
XML--->了解配置文件
CSS--->可以了解一下,后面使用css定位可能會用到點
工具准備:
FireBug是一款Firefox的插件,它集 HTML查看和編輯、Javascript 控制台、網絡狀況監視器、cookie 查看於一體,是開發 JavaScript、CSS、HTML和 Ajax 的得力助手。
與FireBug配對使用的是FirePath,當通過 FireBug 的鼠標箭頭選擇一個頁面元素后,FirePath 輸入框將給出 XPath 的表達式,快速的幫我們定位。
JAVA--->根據自己使用的開發語言進行選擇
Eclipse--->腳本標記IDE工具,現在流行的是intellij idea
Selenium jar包--->推薦版本:2.53.0
Ant--->構建工具(或者使用maven)
Jenkins--->持續集成工具
最后兩個工具一般使用在敏捷開發的項目中,需要持續集成的自動化測試,暫時用不到。