一直沒有時間書寫項目實戰(zhàn)中的自動化實戰(zhàn)文章,剛好項目中用到了冒煙測試腳本,就此通過項目對自動化測試實戰(zhàn)技術(shù)進行梳理,順便也給想學(xué)習(xí)的朋友一個方向。
此自動化測試走的是BS全流程測試,即冒煙測試。
先對項目及腳本目錄做一個總的介紹。
1.腳本目錄

項目結(jié)構(gòu)大致如此,我會給出github上的腳本地址,另外,需要注意的是,運行腳本的時候要注意run_test.py中test_dir和report_dir都是絕對地址,如果要運行腳本需要改成自己當(dāng)年目錄的地址,否則會報錯。另外運行環(huán)境是python2.7.13, 其他版本還未測試,建議在2.7大版本下運行。
Github地址:znyw2_smoke
2.腳本書寫大致思路
首先大概介紹下 PageObject書寫的思路

如圖,整個實時監(jiān)控界面都是由一堆元素組成的(涉及部分前端知識,了解更好,不了解也不影響),頁面上的元素主要分為button--按鈕,input---輸入,scroll---滾動條(本文沒有涉及)三大類,而鼠標(biāo)主要負(fù)責(zé)點擊,鍵盤負(fù)責(zé)輸入。而其中點擊元素又起著跳轉(zhuǎn)界面的作用,此元素定位十分關(guān)鍵。本次腳本多用xpath和classname定位,其他定位方式因為各種局限原因,并未使用,很多人剛接觸自動化測試,都是被例子帶歪了。。。真正項目中開發(fā)一般不會給你id和name這種獨有的ID的,原因很簡單?!,F(xiàn)在很多都是各種框架和組件,基本上最常用的還是xpath,所以對xpath不熟練的朋友還要抓緊練習(xí)此定位方式。
腳本中就是將這些元素的定位全部分離出來,然后作為頁面類的屬性數(shù)據(jù)封裝起來,然后通過書寫類的方法去把操作比如click--點擊操作,input---輸入操作分別按照取名封裝起來,顆粒度要小,以方便之后的復(fù)用,而方法函數(shù)中的參數(shù)要分離出來,以方便外部腳本的輸入調(diào)用。
此界面跳轉(zhuǎn)過程:


前端界面的跳轉(zhuǎn)如上圖,都是通過鼠標(biāo)的點擊事件實現(xiàn)的,而在輸入事件后,通過http協(xié)議和后臺提供的http協(xié)議傳遞給后臺接收并處理然后插入數(shù)據(jù)庫做永久化存儲。
對應(yīng)的類腳本:

類腳本書寫完,還要再寫調(diào)用腳本,以形成實際操作:

調(diào)用腳本中的driver即driver=driver.Chrome()驅(qū)動,用以當(dāng)作所有的find_element的方法驅(qū)動公共參數(shù)。
此界面的操作就這么寫完了,實際上此腳本封裝的還不夠干凈,因為定位的方法在行為中,最好是將定位的方法和定位數(shù)據(jù)都在類屬性中書寫,但目前腳本那么寫就會報錯,只能參考下別人封裝的寫法了,不過此腳本目前階段干活是沒問題的。
自動化測試是一門非常實踐的技術(shù),其是為測試本身這項活動服務(wù)的,所以先完成業(yè)務(wù),再修改腳本,這是一個測試應(yīng)該特別注意的準(zhǔn)則。
后面將對其中一個界面,調(diào)用了js語言的界面進行講解,最后再對runtest.py調(diào)用模塊講解下。暫定是三個部分。
在寫腳本的過程中,發(fā)現(xiàn)了implicitly()方法與driver方法的不同,有些界面必須加sleep界面才能跑通,所以需要查詢一下此兩者的區(qū)別。