1. 程式人生 > 實用技巧 >介面自動化知識梳理

介面自動化知識梳理

介面自動化知識梳理

  • 學習知識塊:基礎知識 類與物件 單元測試 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個月時間完成。

寫框架需要介面地址,介面需求文件。


歡迎掃碼關注!