常見接口協議:HTTP(超文本傳輸協議)、HTTPS(安全超文本傳輸協議)、FTP(文件傳輸協議)、TCP(網絡控制協議)、IP(互聯網協議)、UDP(用戶數據協議)。
HTTP協議響應碼:
1XX:信息響應類,表示接收到請求並且繼續處理,
2XX:處理成功響應類,表示動作被成功接收、理解和接受,
3XX:重定向響應類,爲了完成指定的動作、必須接受進一步處理,
4XX:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行,
5XX:服務端錯誤,服務器不能正確執行一個正確的請求。
HTTP協議請求響應模型(從client開始):(一次請求的生命週期或簡單的軟件分層)
場景:登陸
- 客戶端發起請求到API接口層:用戶在客戶端填寫用戶名和密碼,點擊登錄,發送請求,
- API接收到客戶端發起的用戶請求:API對業務邏輯進行驗證,驗證用戶名和密碼是否合法,
- API會將用戶輸入的數據發給DB層(進行增刪改查一系列的操作)
Create、Read、Update、Delete
select * from user where
username=’ ‘ and password=’’
- DB會將返回的查詢數據庫的條目數給API,
- API返回成功或失敗的狀態碼給客戶端,
- 客戶端將返回信息提示給客戶。
- 客戶端:功能測試、性能測試、自動化測試,
- 接口層:接口測試、功能測試、性能測試、自動化測試,
- 數據庫層:可以將開發人員使用到的SQL語句單獨拿出來進行性能測試。
常用HTTP請求方式:(get和post)post有請求體。
(get請求的開發與測試;post請求開發與測試)
GET 和POST 的區別:
- GET 使用URL 或Cookie 傳參,而POST將數據放在Body 中。
- GET的URL 在長度上會有限制,而POST沒有。
- POST比GET相對安全,因爲在地址欄不可見。
- 一般POST請求用來獲取數據,POST請求用來發送數據。
注:對於上面的區別,其實第一點POST也可以將數據放在URL裏,GET請求其實也沒有長度限制,POST請求看起來是隱式的,但是可以通過抓包拿到參數。
萬能的jmeter(jmeter的應用):
- BS架構應用性能,
- HTTP協議接口功能與性能,
- FTP協議接口功能與性能,
- MySQL數據庫性能,
- MongoDB數據庫性能,
- 支持自定義Java組件開發。
常見亂問題解決:
- 在encoding欄中寫入utf-8,
- 在jmeter.properties文件中將samplerresult.default.encoding=ISO-8859-1改爲samplerresult.default.encoding=utf-8。重啓jmeter即可,
- 添加組件,線程組到添加到後置處理器中添加beanshellpostprocessor。在彈出的框中寫入prev.setdataencoding(“utf-8”)
聚合報告:(監聽器中的聚合報告)
場景設置;參數化函數助手(CSV)。