原先搭建過一個自動化測試框架,迷迷糊糊不求甚解,算是搭建了一個僅限於能用的、根本算不上框架的玩意兒。
現在回過頭來好好看看究竟每一步是怎么聯系起來的,是怎么運行起來的。
本次博客先說說各部件都是干什么的。
各部件簡介:
jenkins:
提到jenkins就不能不提持續集成。jenkins是一個持續集成方面很好很成熟的開源軟件,jenkins本身又是一個java的開源項目,提供了很多功能豐富的插件。
那到底持續集成是個什么東西?整這么多專業名詞一點都不接地氣。說說我的白話理解:
先看看持續和集成本身的意思:
持續:就是指日復一日,年復一年不斷的做一件事兒。
集成:是指把一堆分離的東西弄到一塊去。
那么回來再看看jenkins中的持續集成:
不間斷的,自動的,把每天的新東西整合到一起。新東西包括源代碼,機器環境、測試代碼等等。讓這些重復的、繁瑣的並且有規律的工作交給機器去做。
說了半天,那么為什么要用到jenkins呢?jenkins最突出的一個功能就是可以關聯代碼版本庫(svn、git等),當版本庫有改動時(有人提交了代碼,使代碼庫有變動)。會自動觸發jenkins的構建,也就是會自動執行測試用例。當測試用例全部通過了,則表明本次改動沒問題。如果測試失敗了則表明改動后出了問題,需要查明原因並解決才能再次提交代碼到版本庫。
python:
我用python編寫測試用例腳本。
其實寫測試用例腳本可以用很多語言寫,java,c#編譯型語言也可以。但是python本身是一個很靈活的腳本語言,書寫起來方便快捷。
與其他腳本語言,比如php、ruby、perl等等相比,python語法簡潔,書寫格式清晰,數據類型使用起來方便順手,類庫豐富,涉及范圍涵蓋絕大多數領域。
最簡單的一點:python寫起來很舒服。
selenium:
做web測試必然需要跟瀏覽器打交道。那么做web的自動化測試,怎樣操作瀏覽器呢?這就需要使用selenium了。
selenium又是什么呢?selenium提供了很多類、方法等,使腳本可以通過其提供的方法,模擬真實用戶操作瀏覽器。
selenium到現在為止大體經過了兩個階段,也算是兩個版本。
在selenium1.0階段,selenium是通過js操作頁面上的全部動作,由於是通過調用js來操作的,所以有很大的局限性。
例如無法做出拖拽動作、對系統彈窗也沒辦法操作,因為js只能操作頁面元素。
在selenium2.0階段,selenium和webdriver整合到了一起。
有了webdriver,selenium從兩方面有了改進,一方面selenium不再使用js操作瀏覽器了,而是通過不同瀏覽器廠商提供的大部分頁面操作的接口來操作頁面元素。
另一方面webdriver可以與系統底層交互,直接發送動作信號。例如按下什么鍵、鼠標移動到哪里等。可見selenium2.0比1.0強大很多。
這里簡單說說webdriver:
webdriver我的理解:
他算是一個API,一個規范。
各種不同的瀏覽器廠商參照這份規范,給出selenium調用自家瀏覽器的接口。
然后各種編程語言也是參照這份規范,給出語言自身的、可以操作不同瀏覽器的類庫。
例如我要用python寫測試腳本,要通過python腳本,打開Firefox瀏覽器,進行一些列頁面操作。
這個過程能得以實現,是因為:python有一個叫做selenium的外部類庫,selenium類庫里面又有針對不同瀏覽器而實現的不同的瀏覽器包。
這樣我就可以通過導入selenium類庫,再調用selenium類庫里面的Firefox包來打開瀏覽器、填寫表單、點擊按鈕了。
好了,第一階段先到這里,隨着一點點完善“框架”,博客也會不斷更新。后續貼上一些圖片加深理解。
