零基礎如何學習自動化測試
在知乎開通了自動化測試專欄,想著第一篇文章放什麼好,忽然自己項目組下的測試人員有些急於求成,如何能一周內上手web UI自動化測試,不懂如何學習。
在學習自動化的時候總有人問些很低級的問題,有語法問題,有定位問題,居然連__init__.py文件名都弄錯誤,還有將pageage(包名) 命名為selenium、appium等導致無法引入對應相應庫。
寫個selenium腳本執行不成功拋出異常,跑來問,大哥這個怎麼又報錯了?異常類型提示NoSuchElementException,程序都告訴你沒有這樣的元素。
每遇到各種奇葩問題有時很無語,今天我就說下如何學習自動化?
一、編程語言基礎
要做好自動化測試,編程語言是基礎,是首要的。然而大部分測試人員不懂編程,也不想學編程,就直接上手自動化測試,錯誤頻出導致越做越沒有信心。
沒有編程基礎想學懂自動化很難,有多難,會編程的兩到三周就能上手自動化測試,不會編程就是你做了半年自動化你都沒入門。有些人會說:『selenium和QTP都有錄製功能,我錄製代碼就可以了。』我只能『呵呵』,你可以嘗試錄製幾個腳本的代碼,看看錄製的腳本能用多久。所以不懂編程絕對做不好自動化測試。
在學習selenium自動化語言的選擇,推薦python3,其次java,其他語言遇到問題很難找到資料。java語言學習時間成本太高,所以我建議你學習Python,Python簡單、容易理解,學習成本低,而且它夠強大,Python他能做的事情也永遠超乎你的想像,同樣的事情python實現方式更加簡單。
在學習Python時不要為了做自動化測試而學習Python,selenium只是python中的一個庫而已,Python他還有千千萬萬的庫,他能幫助你做各種各樣的事情,如requests庫,web能讓web介面自動化測試變得跟簡單
Python推薦學習資料:
1、如果你沒有語言基礎,推薦慕課網或者菜鳥教程的入門教程,兩個看一個就可以,上面的代碼必須動手一個一個敲。也有人說《笨辦法學Python》(自行搜索有電子版)將上面的例子每個敲十遍你就會了,還有《python核心編程》設計到方方面面,全而大可以挑選自己感興趣的內容學習。
零基礎學習內容,按流程你能更快掌握引領你入門(最好選擇python3):
基礎語法
基本數據類型注釋運算符字元串處理(切片字元串連接轉義字元串運算字元串的多種引號區分常用函數)
數據結構(列表,元組,字典)控制循環(if,for,while(可選))函數模塊的導入OS模塊常用方法文件讀寫(w,a,r 先這三種)異常處理正則表達式(可以延後)json處理config.ini文件讀寫
類的定義和單繼承(學好上面的兩個月後再看類,開始對類的理解會比較麻煩)
2、如果你有學過一門語言或者使用過1步驟1個月後,知道基本的數據結構和判斷、循環之類的,我推薦《Python簡明教程》 《Python核心編程》 兩者二選一就可以,自行百度。
能使用自動化,學到第一步就可以了,如果想更進一步通過第二步補充其他內容。
Python 入門教程 快捷門
有些文章的鏈接可能無法及時更新,請進入專欄 Python 入門教程
二、selenium學習
學習編程語言是自動化測試基礎的第一步,還需要補充下簡單的前端基礎知識:
HTML(網頁結構,各種標籤,如鏈接、輸入框、按鈕等使用哪個標記)
JavaScript(簡單了解)Firebug或者chrome開發者工具的使用(必須會,他是最常用的)
在selenium學習前了解下selenium的原理,selenium操作瀏覽器需要依賴的驅動,驅動版本與瀏覽器版本也有對應關係,尤其是IE瀏覽器。
學習selenium最好用Python自帶的IDE工具,
selenium學習流程:
瀏覽器控制(打開網頁,最大化,關閉)
元素定位(優先id,name,link text其次class,partial link text,最後xpath)操作元素(點擊,輸入,是否可見)下拉框處理等待時間(固定,顯性,隱性)瀏覽器彈窗操作frame的切換瀏覽器頁簽的切換js操作頁面元素模擬滑鼠和鍵盤操作
相應文章已經在知乎專欄基本更新完成: 軟體自動化測試
三、unittest學習
學會了selenium還是不夠的,要對用例進行管理還要學會單元測試框架,Python有很多單元測試框架推薦unittest或者nose,兩者的資料都好找。
unittest可以簡單學習下基本結構,知道setUp,test_XX,tearDown的執行順序,批量用例執行,HTMLTestRunner測試報告,DDT數據驅動。
相應文章已經在知乎專欄基本更新完成: 軟體自動化測試
四、編寫自己的測試框架
學會了一、二、三步,恭喜你已經進入自動化測試的大門了,最後你要學會自動化測試的思想,自動化測試的流程,注意事項。
編寫自己的測試框架,框架需具備以下功能:常用的操作封裝、數據的管理、Html測試報告、用例的執行規劃等基本功能。
然後慢慢增加功能,可以對常用數據使用配置文件(configparser)、參數化(DDT)、記錄日誌(logging),腳本自動執行,自動發送報告,失敗用例重跑等,一個成熟自動化測試框架就搭建起來,你的Python技能也提高一大截。
2018年1月19日,第一次修改,修改語法錯誤,優化內容
推薦閱讀:
※4.3 通過selenium 模擬瀏覽器抓取
※mac下怎麼搭建selenium python環境?
※python selenium 如何查看網頁的源代碼 ?
※Pycharm—FileNotFoundError: [WinError 2] 系統找不到指定的文件?
※爬蟲雜談(二)使用Selenium抓取動態網站