服務器端測試經驗分享

文章轉載于搜狗測試

先說說我們搜狗公司都有哪些服務器端的應用。

1.有web端的服務,包括搜狗搜索、搜狗百科、搜狗搶票、搜狗地圖、12306服務器端搶票等等。

2.有客戶端相關的服務,包括瀏覽器的名單更新服務、客戶端的升級服務、搜狗號碼通的號碼查詢服務,等等。

針對以上的這些服務,我們總結歸納了一下,劃分了兩種類型:

a. 一種,我們稱之為B\S結構,即瀏覽器\服務器結構,也就是各種web應用,這些web應用只與瀏覽器有關,他的web頁面以及各種后臺邏輯均運行在各種服務器上。

b. 另一種,我們稱之為C\S結構,即客戶端\服務器結構,這種產品的客戶端需要與服務器端通過接口進行通訊,同時服務器端還有自己的功能邏輯,在接收到客戶端發送的請求之后會進行處理,然后返回給客戶端。

那么針對以上這兩種不同結構的服務器端程序,我們是如何進行測試的呢?

首先,我們制定了一套完善的測試流程,通過該流程,指導測試、開發、產品、OP運維等同學的工作。在這個流程中,有三個關鍵的環節:

1.我們有“兩會”。

a)產品需求評審會

在這個評審會上,產品會對提出的需求做出詳細的講解,如果各方涉及的人員比較多,還會確定產品負責人、開發負責人、測試負責人。各負責人的職責如下:

i.產品負責人:是這個項目的總負責人,負責各配合方之間的溝通。

ii.開發責任人:包括客戶端和服務端,原則上由客戶端開發為開發的總負責人。

iii.測試負責人:包括客戶端和服務端,原則上由客戶端測試為測試的總負責人。

b)開發設計實現講解會

在這個環節,開發會在接到需求后,組織一次設計評審,在這里主要由開發(包括前端和后端)和測試參加,在會上我們會做以下幾件事情:

i.由開發詳細的講解功能得到設計思路,包括客戶端和服務器端的功能實現

ii.后續的計劃排期

iii.在設計階段就會增加線上的監控機制

經過這兩個評審會之后,測試會給出大概的測試方案,待開發提測后,測試就可以展開后續的測試工作。

2.三種服務器環境

a)測試服務器

我們的開發會將編寫完成的代碼上傳到SVN上,所有測試環境中的代碼均來自SVN,這樣可以保證被測試的代碼與SVN上的代碼是一致的,與此同時,我們也會不斷的關注開發開發SVN上的改動,以便確認測試的范圍和后續的驗證。

b)待上線服務器

待服務器端的功能測試完畢后,會將被測試完成的代碼部署到待上線服務器上,待上線環境的配置與線上環境完全相同。我們會在這臺機器上進行性能相關的測試。

c)線上服務器

待性能測試與功能測試均完畢后,測試會將開發提交的代碼進行凍結,開發會給OP運維部門提交上線申請單,然后由OP運維部門將SVN中測試完畢的代碼部署到線上。待部署完成后,測試會針對線上環境進行上線驗證。

那么測試人員與開發人員如何在這三個環境中進行切換呢?如下圖:

3.一套線上實時監控

我們會針對線上提供的服務進行監控,主要是該服務的接口功能正確性。而服務器運行的穩定性是由OP運維部門負責監控。當發生線上問題時,測試、產品、開發、OP均會收到包括郵件和短信的通知。測試先進行問題確認,并及時給出結果反饋,如果有問題,開發和OP會對問題進行排查,并由測試進行驗證。如果沒有問題,會查當時通知時發生了什么,以便確認問題是被自動修復了,還是線上監控腳本出現了問題。

有了上面的測試流程之后,那么在開發提測后,我們是如何進行測試的呢?針對之前提到的兩種不同的產品類型,我們會進行以下兩方面的測試:

1.功能測試。

2.性能測試。

針對功能測試,我們有兩種不同的測試方法:

1.基于用戶層面的黑盒功能測試

a)根據產品提出的需求文檔,劃分功能,拆分需求點,根據需求點,進行對應測試用例的編寫;

b)在這個過程中,基本上忽略了客戶端與服務器端或前臺頁面與后臺邏輯是如何進行交互的,完全通過客戶端或前端頁面的行為進行功能測試。

2.基于代碼邏輯和服務器配置的白盒測試

a)服務器端配置的正確性與合理性

i.服務器是否有緩存機制;

ii.服務器對連接數是否有限制;

iii.服務器的負載均衡是否合理;

iv.服務器連接的是否有超時設置;

v.各種網絡請求是否使用的是內網IP。

b)接口測試

我們知道一般情況下客戶端與服務器端的數據交互,均是通過http請求完成的。而服務器端通過web服務器將接收到的請求進行處理。這些處理主要圍繞著,對數據的存儲、運算、轉發等操作,并將操作之后的結果反饋給客戶端。所以接口功能的正確與否,會直接反映服務器端功能的正確與否。那么,這對接口我們是如何進行測試的呢?

i.根據該接口的功能,評估該接口定義的合理性與安全性,例如:

1.客戶端發送的網絡請求是否需要帶有時間戳;

2.客戶端發送的網絡請求是否需要有固定的參數,比如客戶端發送的請求中需要帶有版本號等信息;

3.客戶端發送的數據是否需要進行加密;

4.服務器端是否有針對請求發送來源的校驗;

5.服務器端給客戶端返回的數據及狀態碼是否合理。

ii.接口的測試方法

通過編寫測試腳本,針對接口進行測試,步驟一般是這樣的:

1.根據接口定義的參數,確認傳輸的參數都有哪些,可能的正常取值和異常取值;

2.通過腳本模擬客戶端發送網絡請求,對接口進行單獨測試,并對服務端返回的結果數據進行自動化校驗;

3.通過腳本構造用戶的一系列操作,用以驗證系統功能的可用性。

c)代碼功能邏輯測試

i.對服務器端的代碼做靜態代碼走查,主要關注以下內容:

1.定義的變量是否都被初始化;

2.服務器是否有針對客戶端發送的數據進行異常校驗;

3.對數據庫的操作是否有未釋放的情況;

4. 服務器端的判斷邏輯是否存在功能隱患;

5.連接的數據庫環境是否正確;

6.對數據庫的操作是否有關閉操作。

ii.通過編寫單元測試用例進行驗證

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,807評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,692評論 25 708
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,212評論 2 126
  • 兒子特別愛跟我一起讀小雞球球,每天我下班回家兒子都主動拿一本小雞球球過來,“嗯嗯”的讓我讀。兒子最喜歡的是和小雞球...
    霖少爺閱讀 161評論 0 0
  • 我一直主張孩子要富養。這種富養,是與金錢無關的對于生活品質的追求。窮養的孩子心里有一個巨大的黑洞,需要在成長過程中...
    丫丫丫梨閱讀 218評論 0 0