標題很大,想說的不少,不知道從那開始~~直接步入正題吧html
我的也是因爲公司的人員的現狀和項目的特殊狀況,今年年中後開始折騰web自動化這塊;整這個緣由很簡單,就是想能讓本身偷點懶、也讓減輕一點同事的苦力活;對於自動化測試與人工測試優缺勢的問題,這裏不想深刻討論,開一個博客收集一些觀點而後開個討論組討論效果可能會更好。mysql
標題上列的,是本身對web自動化這塊統一的一個想象或是一套完整的自動化應所包含的的部分,目前完成了excel功能案例參數化+業務功能分層設計+mysql數據存儲封裝+截圖+日誌+測試報告,待後續開發的還有對接缺陷管理系統+自動編譯部署環境+自動驗證false、error案例。web
這些天,把本身作的這套,抽離出來,用126郵箱登陸作了個簡單功能的demo,由於也是邊幹活邊抽時間整理,特別是在126功能業務上面封裝的不是太好,認真仔細的童鞋若是看了,應該還能發現有幾個缺陷沒有修正,分享的demo都是調試經過的,有一部分沒有整完或完善, 但不影響整個流程或介紹,具體問題有(登陸方式,火狐跟谷歌瀏覽量不支持手機驗證碼登陸、jsp界面上面的開始時間與一部分彙總統計值沒有弄等其它異常pass處理);各位看官~若是看完能有一點點幫助的話、我也就開心了~~好了,上菜~~sql
1.excel功能案例參數化數據庫
這部分對本身的要求主要是兩個方面:功能測試人員能夠維護和看懂該文檔、參數化的部分要知足實際的功能業務;最好是不太須要溝通,一看簡單明瞭,那個項是控制啥用的,那些是輸入數據、那些是須要檢查的點。數組
2.業務功能分層設計瀏覽器
這部分對本身要求:功能業務劃分明確,寫腳本思路很清晰;先獲得一個瀏覽器、再獲得一個頁面、再到頁面上的某個功能、而後再運行這個功能。應該是還須要增長runTest目錄,作爲一個main入口;demo就一個功能,因此就沒有體現了;這塊最核心的點,是對測試數據的參數化的實現和對異常的封裝,最麻煩的地方是業務功能判斷的邏輯,具體的話,能夠看看下面:tomcat
功能對測試數據參數化實現:框架
這段代碼,是實現測試話登陸的;如今回頭看,明顯有個很嚴重的問題,哎。。。這裏就不修正了。jsp
功能業務邏輯判斷:
驗證結果的判斷和獲得界面信息輸出,這一塊業務判斷不嚴謹,實際項目能夠根據本身的功能業務特性處理;這套框架裏面,沒有有到unittest+htmlTestRunner。
3.mysql數據存儲封裝
初始化數據庫鏈接
表結構的設計能夠仔細看下,某個值都是有用的,都頗有價值,這裏要功能測試人員一看就知道跑的case究竟是啥狀況,圖片只是一個輔助手段,一看數據就明白是最好的。
數據的插入
這裏須要強調的是對特殊字符的處理,這個很是的關鍵;由於不僅僅輸入的測試數據仍是界面輸出的信息數據均可能包含" ' "特殊字符;這裏用了*args很精髓,能夠處理單個字符串,也能夠處理多個字符串;數組類的處理是相似的。
4.截圖模塊
這塊沒啥想說的
5.讀excel模塊
也沒啥說的
6.日誌模塊
這裏用的是開源的一個,很很差用;打的日誌太底層了;這塊是一個須要優化的點。
7.功能運行類EmailLoginRun.py
具體的項目,建議新建一個TestRun包,建議個main一個入口執行全部功能就好;demo就直接拿功能方法運行了。
8.web jsp
jsp這塊還多優化的
運行EmailLoginRun.py類,運行完畢,運行後效果:
手工把圖片移動tomcat容器內,jsp上須要調用。
訪問jsp頁面,測試結果的過濾和圖片的點擊都實現了;統計數數所有的,沒有細分統計,開始日期、結束日期沒有整。
數據過濾pass界面。
未實現部分:
待續...
最後:工程demo已壓縮,上傳在羣號:342294158;若是能有幫助到你的地方,我很榮幸;若是看了對你的自動化工程有一點補充,我很開心;若是看了能能增長你的想象或打開你的思惟,我很愉快;若是你看完了,沒啥做用,那很抱歉,浪費了你寶貴的時間~~
中午時間現碼的,有錯別字或語句不通暢的,多多包涵~~