目錄:導讀
- 前言
- 一、Python編程入門到精通
- 二、接口自動化項目實戰
- 三、Web自動化項目實戰
- 四、App自動化項目實戰
- 五、一線大廠簡歷
- 六、測試開發DevOps體系
- 七、常用自動化測試工具
- 八、JMeter性能測試
- 九、總結(尾部小驚喜)
前言
1、結合項目講解項目中實戰接口操作(postman和jmeter挑一個)
postman版本答案一:
我用的postman工具做的 接口測試的過程:首先我會問開發拿到接口文檔,編寫對應的接口測試用例,然后把對應的url地址,data信息,headers都放入到postman里面。
然后設置斷言,然后發送接口的請求,看一下接口是否斷言成功,對于一些關聯接口的測試,我會首先把登錄接口調通,然后拿到登錄接口返回的token值,通過在后置處理器tests里面把token設置為環境變量,然后在下一個接口的請求頭里面通過{{token}} 倆個大括號進行引用。
達到關聯接口的測試,如果是有參數化的接口測試,我首先會在本地創建一個CSV文件然后造對應的測試數據,在postman左側欄有一個run點擊一下,然后選擇本地對應的CSV文件,然后批量運行接口,看一下接口是否運行成功和是否斷言成功,完成參數化接口的測試。
postman版本答案二:
我用的postman工具做的,如果有接口文檔,我會問開發拿到接口文檔,如果沒有的話我會自己用fiddler抓包,編寫對應的接口測試用例,然后把對應的url地址,還有入參都放入到postman里面。
然后設置斷言,然后發送接口的請求,看一下接口是否調通并且斷言成功,對于一些關聯接口的測試,我會首先把上一個接口調通,然后拿到上一個接口的返回值,通過在tests里面把拿到的值,設置為環境變量,然后在下一個接口的請求頭里面通過倆個大括號進行引用。
達到關聯接口的測試,如果要批量運行接口的話,我會在左側欄集合里面點擊運行,然后設置迭代次數和選擇參數化文件進行運行,達到批量運行的目的。
jmeter版本:
首先我會問開發同事拿到接口文檔并且設計對應的測試用例,然后打開jmeter,創建一個測試計劃和線程組,添加http請求,把對應的URL地址,入參和端口都填寫進去,然后添加斷言和斷言結果,添加察看結果樹,發送請求。
如果是對于關聯接口的話我首先會把登錄接口調通然后設置一個jsonpath提取器或者正則表達式提取器,拿到登錄接口返回的token值,并且在http信息頭管理器里面通過${token}進行引用,完成關聯接口的測試。
對于需要做參數化的接口,首先我會在本地準備csv文件,然后在jmeter里面添加csv data set config,然后把本地的csv文件加載進來,點擊運行,查看接口通過的情況。
2、接口抓包工具的原理?介紹當前常見的接口測試工具,接口設計測試用例應該從哪些方面去考慮?你們1個接口可以寫多少條自動化測試用例?你測過多少個接口?總共有多少條接口自動化用例,每次運行時間要多久? 你們自動化和功能測試的占比是怎樣的?
1)常見的抓包工具:
fiddler、Charles、wrieshark(TCP/UDP)、瀏覽器F12開發者調試模式
2)抓包工具的原理:
fiddler作為一個代理服務器,代理的是本地,端口號8888,客戶端發送請求給到服務端,fiddler可以打請求前斷點進行攔截,修改請求的數據,然后發送給到服務端,服務端接收到數據進行處理并響應,然后fiddler可以打響應后斷點,修改響應后的數據,再把響應后的數據返回給到客戶端
打斷點:
① 全局斷點
② 單個斷點
請求前斷點 ==》bpu + 接口路徑 ==》取消斷點:bpu
響應前斷點 ==》bpafter +接口路徑 ==》取消斷點:bpafter
【面試題】你主要用fiddler來做什么?
答:用來抓包、打斷點–》那你還能用來做什么?–》還可以進行mock測試,弱網測試
–》為什么要打斷點?–》通過斷點修改請求參數和響應的內容來對接口進行正常場景和異常場景的測試
3)常見的接口測試工具
postman、jmeter、swagger(存接口)、apifox、apipost
Apifox = Postman + Swagger + Mock + JMeter
Apipost = Postman + Swagger + Mock + Jmeter
apifox、apipost ==》團隊協作更為鑒權
Postman ==》不登錄也是可以使用的
apifox ==》必須要掃碼登錄
4)接口設計測試用例應該從哪些方面去考慮【超級重點】
① 首先我會考慮接口入參的必填和選填,參數的長度校驗和類型校驗
② 不同的請求方法,比如把post換成get請求
③ 不同的請求的內容類型,比如表單鍵值對換成json字符串
④ 還會根據接口不同的返回值去設計不同的入參來進行覆蓋
⑤ 還會考慮接口之間的邏輯關系,比如關聯接口等等
⑥ 用戶無效的token或者錯誤的token進行鑒權
⑦ 還有需要考慮接口的冪等性
⑧ 還會考慮接口查詢數據的性能表現==》會不會有慢SQL等等的問題
5)你們1個接口可以寫多少條自動化測試用例?你測過多少個接口?總共有多少條接口自動化用例,每次運行時間要多久? 你們自動化和功能測試的占比是怎樣的?
1個接口大概寫8-10條自動化測試用例
之前項目組測了大概有100多個接口–》100個接口8-10條=800-1000條用例–》接口自動化測試用例寫了大概了1000多條–》10000.5秒每條=8-9分鐘
自動化和功能測試的占比–》功能和業務占到60-70%,UI和接口自動化以及性能占30%左右
3、對于接口冪等性你是怎么測試的?
冪等性的概念:接口冪等性就是用戶對同一個接口發起一次或多次請求的結果是一致的,不會因為多次請求而產生不同的結果
查:是有天然冪等,不需要再做額外的冪等
刪:也是有天然冪等的
更新操作–》數據庫鎖
1)數據庫悲觀鎖–》指的就是每次操作的時候,先把記錄鎖定起來,其他人無法操作這條記錄
2)數據庫樂觀鎖–》就是很樂觀,每次去拿數據的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數據,可以使用版本號機制。
新增操作==》唯一索引
前端:如防止表單重復提交,按鈕置灰、隱藏、按鈕不可點擊等方式
后端:唯一索引
【面試題】你對接口冪等性是怎么測試的【重點】
答:我會在jmeter里面去組建接口,并且設置比如50個并發線程數,加入同步定時器(集合點)同時去對接口發起請求,如果只有一個接口能請求的通,其他的49次請求都是失敗的,就說明接口是做了冪等性校驗的
4、你給后端接口做冪等性校驗,那這個key(唯一索引)加在哪個字段上面?
電商項目:唯一索引加在訂單號上面
銀行貸款項目:貸款申請號,借據號上面
保險項目:保單號上面
5、在測試過程當中有沒有出現過資損的情況?怎么防止資損或者資損這塊怎么測
1)沒有出現過資損的情況
2)防止資損的技術手段:數據庫不用float等數據類型,用bigdecimal 或 decimal等數據類型 ==》比如3333.33 變成了3333.333333333333333333
==》有些除不盡的數據,比如10000分3期,第一期3333.33,第二期3333.33,第三期3333.34
==》通過對賬對金額和資損進行測試
6、mock和沙箱環境是什么意思
1)mock測試:
① 后端接口功能還沒有實現好,但是有需要用到這個還沒有開發完成的接口,就可以通過模擬接口的返回值,先進行mock數據測試;
② 測試一下第三方接口的時候,可以通過mock測試達到測試的目的
7、第三方接口是怎么測試的
1)如果對方有沙箱環境我們就使用第三方的沙箱環境進行測試
2)如果沒有,我們可以通過mock進行第三方接口的測試
最全Python自動化測試進階之路視頻教學 (全集)
下面是我整理的2025年最全的軟件測試工程師學習知識架構體系圖 |
一、Python編程入門到精通
二、接口自動化項目實戰
三、Web自動化項目實戰
四、App自動化項目實戰
五、一線大廠簡歷
六、測試開發DevOps體系
七、常用自動化測試工具
八、JMeter性能測試
九、總結(尾部小驚喜)
人生最耀眼的不是站在領獎臺的瞬間,而是黑暗中依然前行的勇氣。當你覺得疲憊不堪時,請記住:每個偉大的轉折都藏在"再堅持一下"的決定里。你的腳步,正在丈量屬于自己的傳奇!
別被眼前的迷霧困住腳步!那些看似徒勞的努力,都在為驚喜的綻放積蓄力量。當世界說"到此為止"時,你的堅持就是最響亮的回答。向前奔跑吧,生命的精彩正在下一站等你!