首頁  >  文章  >  後端開發  >  web自動化測試(三)Selenium+beatuifulsoup

web自動化測試(三)Selenium+beatuifulsoup

little bottle
little bottle轉載
2019-04-10 13:14:572001瀏覽

關於Selenium的自動化測試,函數的使用,網路上有太多的基礎教學了,我這裡就不在一一列舉了,大家可以自行參考其他教學或官方網站。本文主要探討web自動化測試的方案設計,以及小編個人認為的困難。

系統架構

如下圖,在我們後台自動化測試框架的基礎上(此圖web擴展的部分架構,其他部分涉及到公司保密,沒展現在圖裡面),擴展了selenium,在selenium的基礎上擴展了頁面對象的設別,引入重試加倍延遲等待時間機制來提高設別成功率。 page action模組裡面統一實現了頁面動作,一個函數實現了一個動作,保證每個頁面動作的獨立性,所以如果後面的版本中需要增加不同的執行步驟組合,只需要呼叫裡面的函數即可。

資料取得模組,分了三層,分別是資料庫資料取得模組,頁面資料取得模組,  web application log的資料擷取模組。透過這種方式可以輕鬆組織好團隊裡的各個成員,每個人實現自己最擅長的模組,快速整合。

web自動化測試(三)Selenium+beatuifulsoup

web自動化測試的很大一個需求來源是瀏覽器的兼容性測試,所以在框架設計上必須考慮如果一次測試多個瀏覽器。部落客的方案是對測試案例集放到每個瀏覽器實例裡面,一個瀏覽一個瀏覽器的順序執行。

頁面element 的定義與解析

#頁面元素的定位,一直以來都是web自動化測試的一個難點,因為很多公司的web開發者實現的程式碼並不規範。儘管如此,大家在實現自動化測試的時候,盡量還是避免使用css, xpath去定義,可讀性,維護性太差。盡量使用id, name, class name去定義。對應一些沒有id, name, class name的element,盡量試試用find_elements_by_tag_name 然後解析其屬性來定位element,或者使用find_element_by_xpath(“..”), find_element_by_xpath(“../..”) 來查找上級或上上級element。

利用beatuifulsoap 來解析

#Beatuifulsoap因為強大的解析功能,被用很多爬蟲說解決方案裡面,如果爬蟲的功能都能滿足,自動化測試的需求當然可以全部滿足。部落客結合find_element_by_xx(table_id).get_attribute('innerHTML') 和beatuifusoup 在目前所做的專案裡面幾乎沒有遇到不可以解析和定位elements. 例如一定動態的id 或者name者,先透過beatuifulsoap的模糊匹配,然後透過解析其他屬性來定位id或name的,再呼叫find_element_by_xx 就可以實現完美的定位方案。媽媽再也不擔心開發人員不寫id,或是name值

##【推薦課程:

Python影片教學

以上是web自動化測試(三)Selenium+beatuifulsoup的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除