接口自動化測試的優缺點:
優點:
測試複用性。
維護成本相對ui自動化低一些。
回歸友善。
可以運作更多更繁瑣的測試。自動化的一個明顯的好處是可以在較少的時間内運作更多的測試。
缺點:
不能完全取代手工測試。(自動化永遠不能替代手工測試,隻是提高測試效率)
手工測試比自動化測試發現的缺陷更多,自動化測試不容易發現新的bug。
get請求和post請求的差別:
get請求一般是從背景伺服器上擷取資料用于前端頁面的展示(例如:看到清單頁面等),post請求是向伺服器傳送資料(登入、注冊、上傳檔案、釋出文章)。什麼時候用get,什麼時候用post取決于開發。無論用post請求還是get請求,都能完成對資料的增删改查,分不同的請求方式更多的是一種約定。
get請求的請求參數是拼接在url後面的,隻能以文本的形式傳遞參數,請求參數會顯示在位址欄,資料長度受限于url的長度,傳遞的資料量小(4kb左右,不同浏覽器會有差異),post請求的請求參數是放在request body裡面,傳遞資料量大(預設8m),對資料長度也沒有要求。get請求可以在浏覽器中直接通路,而post請求隻能借助工具完成(比如:postman、jmeter)。
get請求速度快,安全性不高;post請求一般用于像登入這種安全性要求高的場合,請求不會被緩存,也不會保留在浏覽器的曆史記錄中。
前後端分離
開發模式
以前老的方式:
産品經理 / 上司 / 客戶提出需求(提出文字需求)
ui做出設計圖
前端工程師做html頁面(使用者能看到的頁面)
後端工程師将html頁面套成jsp頁面(前後端強依賴,後端必須要等到前端的html頁面做好才能套jsp。如果html發生變更,就很麻煩,開發效率低)
內建出現問題
前端返工
後端返工
二次內建
內建成功
傳遞
新的方式:
前後端約定接口 & 資料 & 參數
前後端并行開發(無強依賴,可前後端并行開發,如果需求變更,隻要接口 & 參數不變,就不用兩邊都修改代碼,開發效率高)
前後端內建
前端頁面調整
????通過f12打開浏覽器開發者工具進行抓包,傳回資料是json格式的就是前後端分離,傳回時html頁面就是沒有前後端分離。
微服務的概念:
将大子產品切分成小子產品。減少代碼的耦合度,進而降低子產品與子產品之間的影響。原先是一個jar包裡面包含所有子產品,改一個子產品就有可能影響其他子產品,現在是将一個一個的子產品都打成一個一個的jar包,子產品與子產品之間的互動通過接口,哪個子產品出了問題,隻需要修改那個子產品的jar包,避免因為修改一個子產品的代碼導緻其他子產品出錯。
接口自動化requests環境搭建
接口自動化核心庫:requests
安裝requests庫的方法:
方法一:
指令行安裝,打開cmd或者終端,輸入以下指令:
方法二:
在pycharm中安裝,settings --> project --> project interpreter --> 點選“+”号 --> 輸入request安裝
測試環境是否ok
響應逾時timeout
json、url、text、encoding、status_code、encoding、cookies
json(javascript object notation, js 對象簡譜) 是一種輕量級的資料交換格式。它基于 ecmascript (歐洲計算機協會制定的js規範)的一個子集,采用完全獨立于程式設計語言的文本格式來存儲和表示資料。簡潔和清晰的層次結構使得 json 成為理想的資料交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
json格式在python裡面相當于字典類型。
json格式化:http://www.bejson.com/jsonviewernew/
url線上編碼轉換:https://www.w3cschool.cn/tools/index?name=urlencode_decode
get請求方式
post請求方式
put請求方式
delete請求方式
手動傳入cookie的值(每次通過浏覽器f12抓包,然後複制request header裡面的cookie)
cookie自動擷取
批量擷取cookie腳本
unittest架構結構:
代碼位址:https://github.com/itcaituotuo/unittest_api
if _name_ == '__main__':
if __name__ == '__main__'的意思是:
當.py檔案被直接運作時,if __name__ == '__main__'下的代碼塊将被運作;
當.py檔案以子產品形式被導入時,if __name__ == '__main__'下的代碼塊不被運作。
閉環斷言(新增 --> 查詢 --> 修改 --> 查詢 --> 删除 -->查詢)
htmltestrunner.py百度網盤連結:
連結:https://pan.baidu.com/s/1oeh-p0d7saj2i7qevycavw
提取碼:p20c
postman、jmeter、requests總結:
postman:接口功能測試
jmeter:接口性能測試
requests:接口自動化
三個的共同特點:都能完成接口功能測試。