話不多說,我們直奔主題。
什么是服務(wù)端測(cè)試?
服務(wù)端測(cè)試其實(shí)很大,一般來說兩種:一種是直接對(duì)WEB或者APP的api接口進(jìn)行測(cè)試;另一種是對(duì)更后端的數(shù)據(jù)庫、緩存系統(tǒng)、中間件、文件系統(tǒng)等進(jìn)行測(cè)試。
1.WEB/APP的接口測(cè)試
服務(wù)端為WEB/APP端提供一些后臺(tái)的接口,比如用戶個(gè)人信息、交易記錄的讀取和存儲(chǔ)等,一般都是用HTTP接口的方式提供。測(cè)試人員需要在開發(fā)交付后寫接口測(cè)試用例或者用postman進(jìn)行測(cè)試。對(duì)于此階段的接口測(cè)試簡(jiǎn)單總結(jié)一下幾點(diǎn):
檢查接口請(qǐng)求是否正確,返回?cái)?shù)據(jù)的正確性與格式
檢查接口入?yún)⒌哪J(rèn)值、參數(shù)類型、非空校驗(yàn)、以及邊界值檢查接口的容錯(cuò)性.
所有功能都需要考慮兼容老版本,列表頁的接口需考慮排序值
檢查接口的性能以及安全性
對(duì)于接口內(nèi)部依賴接口的不可靠性預(yù)防(如:依賴的第三方接口超時(shí))

2.數(shù)據(jù)庫、緩存系統(tǒng)、中間件、文件系統(tǒng)等進(jìn)行測(cè)試
中間件測(cè)試
1.名字服務(wù):測(cè)試中間件對(duì)透明的名字服務(wù)的支持和正確性
2.負(fù)載均衡:測(cè)試中間件對(duì)自動(dòng)在系統(tǒng)中完成負(fù)載平衡的支持和正確性
3.請(qǐng)求優(yōu)先權(quán):測(cè)試中間件對(duì)服務(wù)請(qǐng)求優(yōu)先級(jí)的支持和正確性
4.可用性支持:測(cè)試中間件對(duì)進(jìn)程可用性檢查、超時(shí)檢查等可用性支持和正確性,保證應(yīng)用運(yùn)行環(huán)境穩(wěn)定
5.安全性:測(cè)試中間件對(duì)保證應(yīng)用服務(wù)安全運(yùn)行和數(shù)據(jù)傳輸加密的支持和正確性
6.動(dòng)態(tài)配置:測(cè)試中間件對(duì)動(dòng)態(tài)重配置節(jié)點(diǎn)和參數(shù)的支持和正確性
7.分布式事務(wù)處理:測(cè)試對(duì)跨多個(gè)數(shù)據(jù)源、數(shù)據(jù)源異構(gòu)異地的事務(wù),中間件提供保證其數(shù)據(jù)完整性的支持和正確性
8.交易通信機(jī)制:測(cè)試中間件對(duì)同步、異步和會(huì)話等交易通訊模式的支持和正確性
9.交易運(yùn)行模式:測(cè)試中間件對(duì)一階段提交、兩階段提交、請(qǐng)求轉(zhuǎn)發(fā)和請(qǐng)求嵌套等交易模式的支持和正確性
10.隊(duì)列服務(wù):測(cè)試中間件對(duì)應(yīng)用請(qǐng)求回答隊(duì)列及其LIFO、FIFO、用戶定義的出隊(duì)和原始的ATMI調(diào)用特性隊(duì)機(jī)制的支持和正確性
Cookie、Session、Cache等方法
Cookie
當(dāng)用戶訪問一個(gè)Web系統(tǒng)后,服務(wù)器為了在下一次用戶訪問時(shí),判斷該用戶是否為合法用戶、是否需要重新登陸,或者希望客戶端記錄某些數(shù)據(jù)信息時(shí),可設(shè)計(jì)Cookie以某種具體的數(shù)據(jù)格式記錄在客戶端硬盤中。
通常情況下,Cookie可記錄用戶的登陸狀態(tài),服務(wù)器可保留用戶信息,在下一次訪問時(shí)可顯示該用戶上一次訪問時(shí)間,對(duì)于購物類網(wǎng)站,也可利用Cookie實(shí)現(xiàn)購物車功能。
進(jìn)行Cookie測(cè)試時(shí)需關(guān)注Cookie信息的正確性(服務(wù)器給出信息格式),當(dāng)用戶主動(dòng)刪除Cookie信息后,再次訪問時(shí),驗(yàn)證能否無須重新登陸。電子商務(wù)類網(wǎng)站可添加商品信息后刪除Cookie,刷新后查看購物車中的商品能否成功清除。
Session
Session一般理解為會(huì)話,在Web系統(tǒng)中表示一個(gè)訪問者從發(fā)出第一個(gè)請(qǐng)求到最后離開服務(wù),這個(gè)過程維持的通信對(duì)話時(shí)間。當(dāng)然,Session除了表示時(shí)間外,還可能根據(jù)實(shí)際的應(yīng)用范圍包含用戶信息和服務(wù)器信息。
當(dāng)某個(gè)用戶訪問Web系統(tǒng)時(shí),服務(wù)器將在服務(wù)器端為該用戶生成一個(gè)Session,并將相關(guān)數(shù)據(jù)記錄在內(nèi)存或文件中,某個(gè)周期后,如果用戶未做任何操作,則服務(wù)器將釋放該Session。為了識(shí)別每個(gè)用戶會(huì)話,服務(wù)器生成Sessionid來標(biāo)識(shí)。
從安全性角度考慮,用戶使用軟件系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),除了需提供正確的帳號(hào)信息外,還可能需要提供正確的Sessionid,服務(wù)器將會(huì)對(duì)帳號(hào)及Sessionid進(jìn)行驗(yàn)證。
例子:
用戶登陸成功后,服務(wù)器將會(huì)產(chǎn)生一個(gè)sid來保證該用戶的安全性。如果登陸郵箱后,瀏覽器記錄了該鏈接,關(guān)閉瀏覽器后重新打開該鏈接時(shí),因?yàn)榉?wù)器端分配的sid已經(jīng)變更,服務(wù)器將拒絕該訪問,需重新登陸,以此來保證安全性。
Cache
Web系統(tǒng)將用戶或系統(tǒng)經(jīng)常訪問或使用的數(shù)據(jù)信息存放在客戶端Cache(緩存)或服務(wù)器端Cache中,以此來提高響應(yīng)速度。與Cookie和Session不同,Cache是服務(wù)器提供的響應(yīng)數(shù)據(jù),為了提高響應(yīng)速度,存放在客戶端或服務(wù)器端。
用戶發(fā)出請(qǐng)求后,首先根據(jù)請(qǐng)求的內(nèi)容從本地讀取,如果本地存在所需的數(shù)據(jù),則直接加載,減輕服務(wù)器的壓力,若本地不存在相關(guān)數(shù)據(jù),則從服務(wù)器的Cache中查詢,若還不存在,則進(jìn)行進(jìn)一步的請(qǐng)求響應(yīng)操作。很多時(shí)候,服務(wù)器用Cache提高訪問速度,優(yōu)化系統(tǒng)性能。在Web系統(tǒng)前端性能測(cè)試時(shí),需關(guān)注Cache對(duì)測(cè)試結(jié)果的影響。
當(dāng)網(wǎng)頁訪問以后,客戶端將保存相關(guān)的數(shù)據(jù)信息,再次訪問時(shí),瀏覽器首先判斷本地是否有待請(qǐng)求的數(shù)據(jù),如果有,則直接讀取,不再從服務(wù)器獲取