第一章 自動化測試簡述

       今天是2015年新年的第一天上班,公司來的人還不多,沒有具體的工作要做。應年前的承諾,寫一下自動化測試相關的教程吧,希望對學習自動化測試的小夥伴們有所幫助。

1.1 爲什麼要進行自動化?

       最近幾年自動化測試好像挺火的,去各大招聘網站上一搜,什麼自動化測試工程師,測試開發工程啊,都挺多的而且待遇也挺高!那麼回過頭來,我們要考慮一下,爲什麼很多公司都這麼重視自動化測試呢?這要考慮到現在的用戶羣體的特性:

(1)要求網站或應用響應快。現在生活節奏這麼快,網速也是越來越快,無線,4G等等,如果你的網站或應用反應慢,大家就沒有耐心等待,直接關掉或退出。這也是京東爲什麼這麼受歡迎的原因,送貨快。

(2)要求網站或是應用穩定。如果一個網站或是應用三天兩頭出問題,不用說別人,就我們自己也會很頭痛。自家的孩子沒有辦法,只能用了,可是用戶呢?現在同類網站或是應用這麼多,你讓我不爽,我就不用你。

(3)要求操作簡單。互聯網最基本的原則就是簡單,一鍵操作或是點擊一個按鈕就能完成的事情,就不要一二三四步的來操作了。如果你的操作太複雜,很多用戶就會選擇放棄的。

      兼於以上種種原因,我們要求網站或是應用快速,穩定和簡單,所以每次更新或是上線前後都會花大量的時間來進行迴歸測試。而回歸測試如果讓人工來做的話,費時費力,而且容易造成遺漏;如果用自動化迴歸的話,配合一些兒管理工具來做自動觸發,省時省力,而且可以做到無人值守。這就是爲什麼越來越多的公司重視自動化的原因,自動化測試工程師或是測試開發工程師的就業範圍也比較廣。

1.2自動化測試能做什麼?

      自動化火起來之後,很多公司都相應地成立了自動化測試團隊,可是我們也會經常遇到下面的問題:新開發了一個功能,然後領導就讓自動化團隊來測試;或是某個用戶說哪兒的樣式不對,老大就說你的自動化測試怎麼沒有發現這個Bug呢?等等諸如此類的問題,讓做自動化測試的同學很頭痛。

那自動化測試究竟能做什麼呢?首先,自動化測試不是萬能的,不要以爲有了自動化測試,就萬無一失了。以下幾種情況,自動化測試就無法實施:

(1)樣式問題。你很難用自動化代碼來判斷顏色對不對?這個地方應該不應該換行?字體是不是你想要的,字號符不符合要求?等等!

(2)新開發的功能。新開發的代碼或是功能在測試階段是不適合做自動化測試的,因爲這個時候有很多不確實因素存在。當然簡單的錄製回放也是能做,不過成本太高,要反覆修改,而且一旦測試完成,錄製的代碼就沒有用了。所以不要有了自動化測試,就輕視手工測試工作。

(3)反覆改版的功能。自動化測試是根據頁面元素來定位操作的,如果被測試的網站或應用正處的改版階段,是不能實施自動化測試的。此時若實施自動化測試,維護成本相當大,而且每一次改動都有可能影響到腳本的運行結果,得不償失。

(4)需要驗證碼的功能。很多網站爲了防刷,就會在一些兒重要的地方加上驗證碼,不管是手機驗證碼或是圖形驗證碼,對自動化測試都是阻礙。雖然可以用程序識別圖形驗證碼,調用接口來截取手機驗證碼,但是這會降低自動化測試的速度和安全性,不到萬不得已,儘量避免。

(5)支付相關的功能。涉及到錢的功能,最好不要自動化。因爲迴歸測試很多是針對線上的,如果線下的話無所謂。線上迴歸,支付一般會跳到第三方頁面,而且自動化的支付會給財務結算造成困惑。如果不是上面壓下來的死命令,還是不要給其他同事的工作添麻煩了。

其次,要明白,自動化測試其實很簡單,就是做主功能的迴歸!自動化測試主要是確保被測試對象的核心功能正常工作,如:衆籌網(www.zhongchou.cn)主要回歸以下幾個功能:

(1)登錄註冊:這是任何一個需要帳號登錄網站的主要功能,必須確保沒有問題,否則會造成客戶的流失。

(2)主頁顯示:主頁上的內容必須顯示無錯,當然我們無法確定顯示的精確內容,這些兒內容會不斷變化的,但是應該顯示數據圖片的地方必須確保有內容顯示。

(3)瀏覽項目:瀏覽所有的項目,根據分類瀏覽項目和其他的篩選條件查看項目。項目顯示符合條件,項目數據顯示完整。

(4)搜索項目:根據關鍵字查找項目功能。根據分詞折分原則,有沒有顯示相關的項目。

(5)支持項目:支持某個項目,注:這裏和支付相關,不過可以檢測到支付前的操作,此時不會支付,不會產生真實的訂單。而支持項目的用戶的支持的項目中會有這個項目,支付狀態是未支付。

(6)發起項目:發起一個項目,不過最後不要提交,保存成草稿就行了,也不會產生垃圾數據。

   這幾個功能項目就是衆籌網最主要的功能,任何一個出現了問題,都會影響用戶操作的。而你要測試的時候,首先要評選出被測試對象的主要功能進行自動化,必須確保不影響用戶的操作。

1.3 如何實施自動化測試?

       經過上面的討論,我們認識到了自動化的重要性,以及哪些兒能做自動化,哪些兒不適合做自動化,可是當我們拿到一個被測試的對象,實施自動化的時候,應該如何着手呢?

此時不要慌張,應該從以下幾個方面考慮及實施:

(1)評審被測試對象功能。評審被測試對象的時候主要包括:被測試對象目前是不是穩定版的?有哪些兒主功能?目前自動化測試應該覆蓋到什麼程度?BVT或是80%,95%?最終確認下來自動化測試要編寫的測試用例,如果有對應的手工測試用例最好。

(2)評審被測試對象編碼。自動化測試腳本一般都會和被測試對象使用同種語言或是類似的語言,這樣兼容性好,支持函數比較多。評審被測試對象的編碼,然後選擇你最擅長的腳本語言作爲自動化測試的編碼語言。

(3)自動化測試框架的選擇。目前業內自動化測試框架和自動化測試工具多於牛毛,有點兒讓人不知所措,但是也不能亂選,有以下幾個參考標準:

一,  開源框架或工具。開源的框架或是工具限制比較少,而且支持的人也比較多,方便自己定製或是做二次開發。

二,  支持語言較多。框架或是工具支持的語言是重要標準之一,因爲真正實施的時候,有很多外在的阻礙,支持的語言多以後變換的空間比較大。

三,  比較成熟的框架。不要選擇使用人較少,偏僻的框架,這樣的框架會存在Bug,我們是在使用工具,沒有必要花很多力氣去解決框架的Bug。而且要選擇成熟的版本,如果不是使用最新的函數,還是使用穩定的版本比選擇最新的版本好。

(4)自動化測試腳本的運行環境。自動化測試腳本在Windows環境下運行,還是在Linux環境下運行?或者是其他的環境,運行環境的不同,也會影響自動化腳本的選擇。

(5)自動化代碼架構的規劃。當上面的問題都選擇好後,就要規劃一下自動化測試代碼的架構了。雖然傳統的流水賬似有代碼也能測試,當測試用例多的時候,就很難維護了。好的代碼架構是非常有必要的,清晰明瞭,可讀性和易維護性在後其是相當重要的。

(6)編寫具體的測試用例。然後將第(1)中確定的手工測試用例轉化成自動化腳本編寫的測試用例,調試成功即可。

(7)自動觸發及執行。當自動化測試穩定後,可以接入到Jenkins等代碼管理工具中,配置觸發式執行或是定時執行,對被測試對象進行迴歸。

   經過上面我們探討,相信你對自動化測試有了一定的瞭解。那麼要想動後寫出自動的自動化測試用例,還是需要認真的學習的。下面的文章我們將探討如何藉助於WebDriver框架,用python語言編寫自動的Web自動化測試用例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章