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