本文章轉(zhuǎn)載于搜狗測(cè)試
隨著互聯(lián)網(wǎng)產(chǎn)品的不斷發(fā)展抒线,降低前端與后端的耦合度,便于產(chǎn)品功能的快速更新渣慕、迭代嘶炭,對(duì)測(cè)試來說,為適應(yīng)這種變化逊桦,不可避免的要進(jìn)行服務(wù)端部分的測(cè)試眨猎,那么什么樣的需求適合進(jìn)行服務(wù)端測(cè)試?服務(wù)端的測(cè)試工作分哪些部分强经?服務(wù)端測(cè)試又如何開展呢睡陪?請(qǐng)往下看。
什么樣的需求適合進(jìn)行服務(wù)端測(cè)試
現(xiàn)今的互聯(lián)網(wǎng)產(chǎn)品按使用場(chǎng)景大概可以分為三類
web端夕凝,也就是網(wǎng)頁
移動(dòng)端宝穗,手機(jī)app&h5頁面(當(dāng)然h5也在各個(gè)平臺(tái)適用户秤,但目前來說更多的是應(yīng)用于移動(dòng)端的)
PC平臺(tái)產(chǎn)品,例如windows客戶端逮矛、mac客戶端等
以上三類產(chǎn)品都或多或少的需要服務(wù)的支持才能使其功能更加完善鸡号、策略更加靈活;那么具體什么樣的需求適合進(jìn)行服務(wù)端測(cè)試呢须鼎?我舉幾個(gè)例子:
1鲸伴、(web端需求)12306購(gòu)票主頁,頁面布局改版晋控、支付接口由原來的跳轉(zhuǎn)到銀行網(wǎng)銀頁面進(jìn)行支付修改為跳轉(zhuǎn)到支付寶汞窗、微信支付頁面進(jìn)行支付;
以上的需求文檔包括兩個(gè)需求:1赡译、修改頁面樣式仲吏;2、更換支付接口蝌焚;
需求1主要的改動(dòng)是修改頁面css裹唆,那驗(yàn)證點(diǎn)主要是頁面樣式正確性、兼容性只洒、頁面原有功能正確性许帐;
需求2主要的改動(dòng)是更換支付接口,修改支付跳轉(zhuǎn)邏輯毕谴,由于支付寶成畦、微信接口屬于第三方提供的接口,所以對(duì)于接口功能正確性的驗(yàn)證應(yīng)該是接口提供方來做涝开,所以需求2主要的檢查點(diǎn)就是支付跳轉(zhuǎn)邏輯的正確性循帐,也就是支付流程正確性;
這兩個(gè)需求我認(rèn)為都不需要單獨(dú)進(jìn)行服務(wù)端測(cè)試忠寻,因?yàn)檎驹诜?wù)端的角度惧浴,這兩個(gè)需求都僅僅是更新服務(wù)器上的靜態(tài)文件而已存和,并沒有服務(wù)端邏輯的變動(dòng)奕剃,而代碼變動(dòng)主要會(huì)對(duì)前端功能造成影響,從客戶端功能和需求的角度設(shè)計(jì)用例并執(zhí)行就ok了捐腿。
2纵朋、(移動(dòng)端需求)搜狗搜索app,主頁上方增加當(dāng)前天氣板塊茄袖;
猜測(cè)一下這個(gè)需求的實(shí)現(xiàn)操软,app在加載主頁時(shí),發(fā)送一條http請(qǐng)求宪祥,帶上當(dāng)前位置坐標(biāo)聂薪,服務(wù)端根據(jù)位置判斷用戶當(dāng)前所在城市和區(qū)縣家乘,并請(qǐng)求第三方天氣接口,將返回內(nèi)容格式化之后返回給客戶端藏澳,客戶端加載服務(wù)端返回的數(shù)據(jù)并進(jìn)行展示仁锯;
先說一下這個(gè)需求可能存在的問題:1、客戶端和服務(wù)端由兩個(gè)開發(fā)團(tuán)隊(duì)負(fù)責(zé)翔悠,這兩部分的進(jìn)度有可能不同业崖,任意一方未提測(cè)可能會(huì)導(dǎo)致測(cè)試delay;
這種情況比較適合將客戶端和服務(wù)端分別排期測(cè)試蓄愁;
客戶端:1双炕、通過mock數(shù)據(jù)驗(yàn)證客戶端能正確響應(yīng)各類數(shù)據(jù)渲染并展示;2撮抓、驗(yàn)證客戶端樣式正確妇斤;3、驗(yàn)證客戶端異常處理丹拯;
服務(wù)端:1趟济、驗(yàn)證根據(jù)坐標(biāo)判斷用戶當(dāng)前所在城市區(qū)縣;2咽笼、驗(yàn)證第三方接口請(qǐng)求拼接正確性顷编;3、驗(yàn)證處理第三方請(qǐng)求返回正確性及容錯(cuò)剑刑;4媳纬、驗(yàn)證處理客戶端請(qǐng)求的容錯(cuò);
服務(wù)端測(cè)試分哪些部分
還拿上面的需求2來說施掏,服務(wù)端測(cè)試可以分以下幾個(gè)部分:
1钮惠、服務(wù)端邏輯的正確性驗(yàn)證;
2七芭、服務(wù)端處理客戶端請(qǐng)求的容錯(cuò)處理素挽;
3、服務(wù)依賴的第三方數(shù)據(jù)的處理和容錯(cuò)狸驳;
4预明、服務(wù)端性能測(cè)試;
具體方法:
1/2/3:都可以通過單測(cè)來覆蓋實(shí)現(xiàn)相應(yīng)功能的函數(shù)耙箍;
1/2:也可以通過接口測(cè)試的方式驗(yàn)證服務(wù)的入口出口撰糠;
4:需要進(jìn)行性能評(píng)估后,通過壓測(cè)工具確定服務(wù)性能辩昆;
服務(wù)端測(cè)試如何開展&進(jìn)行
1阅酪、了解產(chǎn)品需求及開發(fā)實(shí)現(xiàn),評(píng)估是否需要做服務(wù)端測(cè)試;
2术辐、如果評(píng)估需要進(jìn)行服務(wù)端測(cè)試砚尽,需要與客戶端測(cè)試同學(xué)確認(rèn)各自計(jì)劃;
3辉词、根據(jù)測(cè)試時(shí)間尉辑、需求緊急程度、服務(wù)端邏輯復(fù)雜程度等因素評(píng)估服務(wù)端測(cè)試使用的方法较屿,如果時(shí)間緊任務(wù)重隧魄,那么不適宜選擇單測(cè)的方式;如果時(shí)間充裕隘蝎、且服務(wù)端邏輯較復(fù)雜购啄,可以通過單測(cè)覆蓋更全面的測(cè)試點(diǎn);實(shí)際使用的測(cè)試方法需要依具體情況來靈活確定嘱么,如果情況允許狮含,甚至可以通過接口測(cè)試保證主路徑功能正常,待服務(wù)上線后再補(bǔ)充單測(cè)曼振;
4几迄、設(shè)計(jì)接口測(cè)試框架或設(shè)計(jì)單測(cè)框架
5、測(cè)試設(shè)計(jì):接口測(cè)試case 或 單測(cè)case
6冰评、執(zhí)行測(cè)試 并 隨時(shí)執(zhí)行回歸測(cè)試映胁。無論選擇接口測(cè)試還是單元測(cè)試,case的維護(hù)都是比較重要的甲雅,因?yàn)榉?wù)端代碼修改靈活解孙,可能修復(fù)一個(gè)問題的同時(shí)引起其它c(diǎn)ase的失敗,所以要定期執(zhí)行所有case,以保證所用功能正確;
7命斧、功能回歸完成后,根據(jù)之前評(píng)估的需要進(jìn)行性能測(cè)試吩谦,具體方法不在這說了。
8、如果客戶端和服務(wù)端是分開測(cè)試的話,在服務(wù)端測(cè)試完畢后荠商,需要通知客戶端測(cè)試進(jìn)行集成測(cè)試;
9抒寂、客戶端依賴服務(wù)端上線的情況结啼,需要服務(wù)端提前上線掠剑。這里如果是新服務(wù)的話屈芜,可以根據(jù)情況直接上線后測(cè)試線上代碼;
10、上線后要進(jìn)行線上服務(wù)可用性監(jiān)控井佑,這個(gè)監(jiān)控可以通過線上異常log報(bào)警或探針腳本實(shí)現(xiàn)属铁,具體方法不限,目的是確保線上服務(wù)運(yùn)行正常躬翁;