測試客戶端與服務器交互的功能,如何進行測試,需要考慮哪些內容呢?下面我們分階段來說明一下~
測試溝通階段
需要跟客戶端和服務器端開發溝通,確定客戶端發送請求的樣式,需要包含哪些參數值,參數值具體有什么樣的作用。
跟服務器端確認是否需要添加特定的user-agent(添加user-agent的目的:確保服務器安全)。
確認客戶端和服務器端交互時是否需要對文件進行加密操作。
跟開發確認請求時是否需要增加重試和具體的超時機制,有無下載的斷點續傳。
確認服務器的具體類型,是apache的還是Ngnix的。
對于需要客戶端識別的參數,確認服務器端返回該參數是可能存在的返回值。
對于異常情況,跟服務器和客戶端的開發確定相應的容錯處理。
需要注意詢問開發,與服務器之間的交互是用什么做的,標準的http協議還是自寫的協議。
還要注意,交互時的http連接,是用get還是post。
需要和開發事先溝通清楚,是否需要特殊工具。
如果客戶端與服務器端交互的配置文件為密文時,需要詢問開發有沒有需要特別關注測試的地方。
需要和開發對一下url中的參數,是否可以滿足需求
需求了解時,要注意跟產品/開發確認好測試范圍;
跟開發確認好,是否需要進行壓力測試;
跟開發確認都哪些地方需要加防盜鏈;
如果涉及到網頁相關,要確認好測試環境:xp、win7、Win8、Win10及IE版本等
跟開發確認好待測試的常規網絡錯誤,以及測試方法;
對于服務器端策略,需要和該服務的運營負責人溝通清楚,是否需要測試關注
功能劃分
如果一個功能同時涉及服務端和客戶端的修改,首先從功能上就要分別對客戶端和服務端分別進行測試。
測試準備階段
盡量使用線上的服務器;如果需要搭建服務器則盡量保持跟線上或未來線上的服務器類型一致。
搭建測試服務器環境時,測試服務器的返回策略,盡量跟線上或未來線上的服務器端策略一致。
用例設計
寫case的時候,詳細了解客戶端和服務端的邏輯后,要確認一下,之前定好的測試范圍是否合理,是否有部分不需測試的邏輯可能會存在問題,如果有這種不確認的地方,需要再次確認測試范圍;
要考慮不聯網時,待測模塊是否仍需支持某些功能;
執行階段
1.1. 客戶端關注
嘗試連接時,不聯網,要有超時
對于本地無連接的測試,一定要區分斷網和禁用網卡,這兩種情況不同。
下載過程中,網絡情況不佳或者斷網,要有超時,最好也有三次重連機制,重連的時間不宜過短建議20ms
文件過大,建議需要有斷點續傳邏輯
要驗證各種網絡錯誤環境,最起碼要包括200、302、403、404、417、500、502等錯誤和服務器超時、本地超時
測試時需要關注,每條url請求是否支持302跳轉
需要模仿502跳轉,確保調整后,客戶端能夠正常運行
服務器返回文件類型需要關注:文件格式錯誤、Html格式文件、空文件、0字節的文件。
服務器返回文件時,文件的儲存路徑,空間,路徑的讀寫權限、儲存路徑是否已經存在文件,存在文件的數據(0字節,其他類型的文件、損壞的文件、下載的文件不完整)
服務器端返回的url值的類型、長度的容錯,服務器返回文件的內容:是否加密,參數值為中英文、簡繁體、特殊符號、數字、空、缺省、零、小數、負值、超長、亂碼等,參數缺省,規定下載的文件個數與下載的文件實際個數不匹配。
發送的url內容,參數值中的特殊符號、中文是否已經轉義;
需要測試時關注,交互時配置文件的編碼問題,例如要覆蓋到ASCII、unicode、ANSI等編碼。
還要注意測試時,交互時配置文件中的換行與回車換行的問題,要保證這兩種都可以測試通過
要注意在低權限進程中,該功能能夠正常進行
該交互是否會被安全軟件攔截;如果要打開瀏覽器訪問,還要檢查是否會被瀏覽器攔截
客戶端發送的請求中是否帶具有特性的User-Agent(具體根據與開發的溝通結果來驗證)
基本功能測試完畢后,需要進行跟服務器端的聯調。
客戶端與服務器聯調時,要注意確認聯調case,多跟開發溝通;
1.2. 服務器端關注
對于服務器來說,要進行壓力測試
客戶端、服務器端分別測試后,上線前要有聯調,除了走主功能外、還要結合開發與運營的意見設計聯調case
服務端需要考慮是否要做安全校驗,以免被攻擊
服務端和客戶端均通過測試后,在上線前,需要客戶端和服務端進行聯調測試,確認服務端和客戶端均ok
客戶端發送請求的內容:是否加密,參數值為中英文、簡繁體、特殊符號、數字、空、缺省、超長。
測試完成后
服務端上線后,如果有需要,需要驗證服務端的服務正常上線,通過外網IP能夠獲取服務端的服務
公示客戶端與服務器端交互時需要注意的相關事項及存在的風險,確保服務器端的策略能夠與客戶端正確匹配。