介面自動化知識梳理
介面自動化知識梳理
學習知識塊:基礎知識 類與物件 單元測試 requests openpyxl pandas re ddt unittest mysql logging
框架梳理
學習方式:靠時間堆 思考清楚
http請求類:寫2組資料在Python裡面。
單元測試類:寫2組資料在Python裡面。
解決資料的分離:資料寫到Excel裡面去。
解決引數的依賴關係。
解決引數的自動化做引數的問題。
資料庫校驗 期望結果。
學習目的
1.加深對自動化的理解:功能自動化。
2.需求分析。
3.掌握資料分離/程式碼分離/檔案分離的概念。
1.為什麼要去做自動化?
自動化的本質是讓工作更加方便輕鬆。
穩定性測試,維護性測試,迴歸測試的時候用自動化。
新加的功能不可以做自動化,必須手工去做。
例如如果引數替換格式不對怎麼辦?
如果這個引數是不必要做引數化的,對資料的格式有強烈的要求,這樣的情況建議不做引數化。
設計自動化的時候:框架非常重要,思路也很重要。
2.測試資料
放哪:excel--DoExcel 專門負責讀取資料。
怎麼讀:用例的可配置。
引數化:每次會自動的更新測試資料--省去手工操作。
特殊點:註冊手機號的處理。
Excel寫一個初始化手機號。
sql語句查詢當前存在的最大的手機號,在此基礎上+1.
寫死的手機號---不推薦。
資料的替換:引數化之後--讀取資料時要進行替換。
期望結果:引數化的地方做好替換。
實際結果:
寫入Excel裡面去。
利用斷言與期望結果做比對。
測試結論:
通過就pass,不通過就fail,同步寫入測試結果進去。
3.介面自動化測試思路
1.利用單元測試去執行用例。
2.把測試資料和測試結果存在Excel裡面。
3.把整個程式碼的執行過程放在日誌裡面。
4.執行的報告會生成html。
5.利用ddt還有其它的一些處理方式。
第一步考慮測試資料,測試資料不僅包括我請求的那些資料,包括針對不同的模組,如果儘可能想用引數化的話,比如地址,引數,期望結果,實際結果等這些都可以存到Excel裡面去。
這樣做就是為了提高程式碼的複用性,讓它的改動儘量少一點。不管哪個模組的用例,都可以用這套框架去跑。
把資料放進去只是第一步,怎麼去讀,怎麼去執行,執行哪一些?都涉及一個可配置,也就是讓用例活起來。
4.引數化:標記。
通過程式碼處理資料,連結資料庫,自動更新。
手機號註冊:手機號+1
或者去資料庫查詢一個最大的手機號去做操作。
5.資料的處理:包含請求資料和請求結果。
怎麼去寫回,怎麼去做,怎麼去把它寫進去,怎麼去定義這個結果。
6.ddt
拿到資料進行拆分,方便拿到多少資料就執行多少條用例。
7.資料庫校驗
不同的資料庫需要不同的資料驅動。
需要校驗嗎?
涉及金額的變化的一些正常操作,做校驗多點保障。
資料庫校驗:使用者的金額,賬戶這些,肯定會檢查賬戶的。
如果不校驗資料庫,全寫在Excel裡面,全靠眼睛看期望值實際值,是比較困難的。
利用資料庫完成資料的查詢。
資料庫如何寫成一個類?
配置檔案+資料庫操作類。
8.應該要用哪些框架或者思路?
Excel+請求+mysql
Excel存請求資料和結果。
請求就是http請求幫你完成請求,最後查詢資料,還是要寫回Excel。
Http:requests
sokect:Python什麼庫支援這個協議。
webservice:suds庫。
dubbo
在不太懂這個協議怎麼用的時候,先寫成框架,先發一個請求,能夠請求成功之後,再去考慮把它封裝成類,然後進行單元測試,資料引數化,寫回結果。
框架:寫的這一整套程式碼就是框架。
就是第三方模組的學習,把它組裝,然後就成了框架。
例如我寫的http介面的框架,以後遇到別的http介面,可以按照這個套路去做,改下用例,稍微改下里面的程式碼就可以了,這個就是框架的意義。
框架:步驟 思路 用到哪些技術?
unittest ddt openpyxl mysql requests config log email jenkins unittest+python+ddt
9.必會:每個介面跟資料表的一個對應關係。
10.普及資料分離/程式碼分離/檔案分離的概念。
11.補充
soapui看看webservice有什麼介面地址。
13083138929
根據手機號碼的後3位去進行儲存,舉個例子,13083138929,那麼簡訊驗證碼會存在29庫,89表。
如果找簡訊驗證碼,寫sql語句根據手機號碼去查,找到對應的庫,找到對應的表,這就是分表分庫設計。
任何地址,不管是用任何工具還是寫程式碼,還是各種請求,地址後面不能有空格,有空格就不識別這個地址。
12.遇到報錯怎麼辦?
對於小白來說,列印比Debug好用。如果發現報錯了,可以列印下。
哪行報錯了,就在呼叫之前和呼叫後給它打印出來。
自己解決的問題,才會記得住!!!
魚的記憶,所以做筆記很重要!!!
勤動手寫,不要老是問別人,實在自己解決不了的情況下,問了別人,找到了答案,切記一定要記下來!!!!
13.返回結果要關注什麼?
關鍵欄位。
跑介面最關注的是狀態碼是不是對的,前期功能測試都測過了,所以只考慮code或msg,以這種進行校驗就可以了。
不同的資料庫用不同的資料驅動。
14.unittest核心步驟
15.常識
web自動化很重要!
先學web再學app。
先熟悉業務,才能寫框架。
初步框架1-2周,1個月時間完成。
寫框架需要介面地址,介面需求文件。
歡迎掃碼關注!