天天看點

接口自動化知識梳理

接口自動化知識梳理

學習知識塊:基礎知識 類與對象 單元測試 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。

先熟悉業務,才能寫架構。