本文章轉載于搜狗測試
最近完成了一個比較大的需求的測試:搜狗瀏覽器追劇功能。
該需求的主要目的就是分析用戶的觀影行為(比如訪問了哪些視頻網址,看了哪些電視劇),進而在特定時間給用戶彈泡提醒,方便用戶更快的消費視頻內容。
本文在此介紹一下服務器端測試的思路。
【需求框架】
我們的測試方案主要分三部分:黑盒測試+接口測試+服務器邏輯測試。
接口測試和服務器邏輯測試對應需求框架中的兩部分:一、Client-Server信息的收集;二、讀取數據庫后的運算邏輯;見需求框架中的紅色部分。
【測試設計思路】
1、接口測試(client_Server)
通過python的http,urlib等庫,構造json數據,模擬客戶端發送請求到服務器端,檢查服務器響應。
請求字段有dralotOff/dralotOn(追劇功能的關閉/開啟)等等。
服務器數據格式類似于Json:
涉及兩個點:
(1)服務器返回(json,狀態碼)。比如,發送獲取用戶追劇黑名單的請求后,服務器返回對應用戶的NotNoticeVideoList(即哪些網站被用戶拉黑,不在進行推送追劇的彈泡)。
(2)寫入服務器數據庫的正確性(比如用戶關閉)。比如,用戶關閉了追劇功能,發送該請求后,上圖中服務器用戶觀影數據庫中的favorSwitch字段應該置為False。
2、服務器端邏輯測試
通過對服務器數據庫寫入測試數據,調用服務器計算彈泡的腳本后,檢查計算后的彈泡信息是否正確。
服務器數據格式類似于Json:
數據庫中字段有hid(用戶標識符),videoID(觀看的是哪一個電視劇),visitTime(觀看電視劇的時間),lastVideoNo(最后一次觀看的電視劇集數),favorSwitch(追劇功能開關),recentpushlist(最近推送的彈泡信息),modifiedFlag(在彈泡信息生成后,用戶是否又觀看了新的劇集或有其他變化,比如關閉了追劇功能)。我們會根據每個字段來設計case,具體見下面的示例。
涉及幾個點:
(1)用戶觀影信息數據庫中測試數據的構造(Json數據)。比如:觀看了西游記第三集,那么計算后的彈泡信息里應該是西游記的第四集。
(2)用戶配置數據庫中測試數據的構造(Json數據)。比如:當用戶關閉了追劇功能后,那么計算后不應該有彈泡信息。
(3)線上電視劇數據庫信息的構造。比如:即使用戶觀看了西游記第三集,如果線上數據庫沒有對應西游記的相關劇集信息,計算后也不應該有彈泡信息。
【自動化case設計】
【自動化case編寫】
1.????底層庫封裝,主要涉及幾個點
(1)環境準備和環境清理
(2)發送請求,解析請求返回的內容
(3)對服務器數據庫的讀寫、清理
(4)調用服務器計算彈泡函數的腳本函數
(5)預期結果檢查的函數
示意圖:
2.????自動化case用例轉為代碼,IDE使用eclipse,利用Pyunit框架+Pydev插件
3.部分case的細節示意圖
對hid字段的驗證:
對visitTime的驗證:
4.????舉個case的例子