python-selenium-bs自動化實戰(zhàn)(一)

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

此自動化測試走的是BS全流程測試,即冒煙測試。

先對項目及腳本目錄做一個總的介紹。



1.腳本目錄


項目結(jié)構(gòu)

項目結(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)過程:


點擊左側(cè)卡片告警詳情出現(xiàn)


點擊【通知調(diào)度】按鈕出現(xiàn)dialog彈窗

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

對應(yīng)的類腳本:


類腳本

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


調(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ū)別。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容