1. 程式人生 > >雙十一臨近,怎樣讓買家流暢地秒殺? ——騰訊WeTest獨家開放電商產品壓測服務

雙十一臨近,怎樣讓買家流暢地秒殺? ——騰訊WeTest獨家開放電商產品壓測服務

img 高峰 大促 做出 開始 認證 class display 購物車

WeTest 導讀

十一月臨近,一年一度的電商大戲“雙十一”又將隆重出場,目前各大商家已經開始各類優惠券的發放,各類大促的商品表單也已經提前流出,即將流入各個用戶的購物車中。

作為這些活動的載體,產品宣傳、商品購買、交易結算、客戶反饋以及售後服務都是電商產品(包括網站、APP、小程序等形式)非常重要的功能,但當雙十一臨近,電商產品要面對大量級用戶群體湧入,流量猛增的局面,性能表現往往就成為了成功的關鍵。


雙十一的流量挑戰

在優化電商產品的性能表現前,首先要了解一下電商產品的訪問邏輯,以電商網站為例:

電商網站的核心內容,包括了Web服務器、應用服務器和數據庫服務器,其中前端Web服務器負責接收並處理來自用戶的HTTP請求,並生成Web頁面反饋給用戶;中間的應用服務器負責執行其中的業務邏輯;後臺數據庫和文件服務器負責存儲用戶、產品信息及狀態。

為了提升訪問的性能,有的網站會在數據庫服務器前部署數據緩存設備。外圍部署負載均衡服務器,負責在海量用戶訪問與多臺服務器間進行負載分擔。

對於電商產品來說,當流量變高,成百上千的服務器和其他設備面對海量用戶的訪問,會遇到這樣的場景:有的用戶在不斷查詢商品信息,有的用戶在註冊會員,有的用戶在修改購物車信息,有的用戶在下單付款,有的用戶在秒搶商品,等等。

此時若不重視承載能力,會造成嚴重的後果。比如國慶期間鹿晗公布戀情導致微博宕機,以及過去幾年iPhone新機發布導致官網崩潰,都是由於對流量突增沒有足夠的承載能力導致的。

技術分享

而這些現象,都給用戶帶來了很大的困擾,而且用戶體量越大,影響的波及面就越廣,不僅影響用戶口碑,也影響產品收入。如果把產品的月收入平攤到每一分鐘的話,大家可以通過30分鐘,60分鐘,乃至12小時,24小時計算具體的損失金額,還要加上因此產生的用戶流失以及品牌口碑影響。

所以,如何在“雙十一”這樣火熱的節點保證用戶順暢訪問網站,成了一個重大的挑戰。

電商產品的壓測方案

那麽,怎麽樣才能讓電商網站在面對活動流量高峰的時候能夠提供正常服務呢?容量規劃,壓力測試以及壓測環境的配置是電商網站必須要經歷的考驗。

尤其是壓力測試,是整個電商網站活動前的實戰演習,能夠提前預知網站性能表現的瓶頸與故障點。

一、預估流量情況

電商網站背後的系統通常分為兩部分,一部分是導購,主要的作用是為用戶推薦各式各樣的商品,提供搜索服務,給用戶挑選商品帶來便利;另一部分就是交易,簡單來說就是電商網站下單、搶購等活動的過程。

兩部分的流量形式是不同的。導購部分的流量會呈現為一個慢慢上漲的曲線,對於服務器來說,流量的壓力是慢慢增加的;而交易部分的流量,卻是陡然上升的,特別是在某個搶購活動中,壓力會瞬間增長到一個高峰,沒有給人和機器任何的反應和決策時間,這也是電商產品承載能力要求比其他的產品高的重要原因之一。

但是這個高峰會是多少?很多人在事前並不知道,如果要模擬真實的壓力場景,不同的壓力造成的測試成本都不同,定高了,成本高,定低了,沒效果,因此要想讓壓力測試既能滿足足夠的流量壓力,又把測試的成本壓縮到最小,活動籌備之前對於流量的預估非常重要。

阿裏巴巴在雙十一活動前通常也會進行壓力的預估,將其叫做”容量規劃“。活動流量會有多少?峰值會到多少?電商網站的開發人員需要心裏有數。

二、場景化壓測

在實際電商活動開始後,用戶會從四面八方湧入產品,如何去模擬用戶的真實行為,形成一個最接近真實的壓測場景是電商產品壓測第二件需要做的事情。

電商產品通常有很多接口,用戶在訪問過程中可能接觸其中的某幾個接口,一種壓測的方式就是針對這所有的接口進行統一的壓測,增加相同的壓力,算出一個系統的容量,然後再根據這個系統的容量情況擴展到一個個集群。

這種方法有一個缺陷,就是如果這個系統某個接口出現了問題,整個集群都會崩潰。

而場景化壓測可以避免這類問題。在實際的壓測場景中,流量很大一部分都會被分流,由於每個用戶的購物流程都不一樣,因此對於電商網站上的接口受到的壓力都會不同,可以實現用最少的服務器支撐最大的流量。

那麽,一般電商購物會有哪些場景呢?以下舉三個例子。

場景一:登錄註冊,訪問個人中心

用戶在進入電商產品後,會有查看自己訂單情況的需求,因此,“登錄“”註冊“以及”個人中心“會成為流量較高的接口。

場景二:商品遍歷

“商品遍歷“指的是用戶在下單購買前,對不同的商品頁進行訪問的過程,而此時用戶已經進入了登錄狀態,會帶著登錄態對不同的頁面進行訪問,此時不同的商品頁面接口會承受比較大的壓力。

場景三:購買下單

這可能是電商網站並發壓力最高的一個接口,購買按鈕,購物車頁面以及付費接口都會面臨很大的瞬時壓力。

在確認完“雙十一“活動中承受壓力可能最高的幾個場景之後,產品開發或測試人員就可以根據場景配置相應的測試用例了。

三、線上壓測配置

配置測試用例,實現真實壓力,通常需要一個能夠真實模擬海量用戶的測試工具,WeTest壓測大師為電商行業提供了一個適用的測試環境,提供了”上下文變量“、”全局參數化“等功能,可以滿足電商產品大部分的測試需求。

“上下文變量“實現”用戶登錄”、”購買下單“場景

“上下文變量“實現的是將用戶登錄時的用戶信息傳輸到下一個頁面中,對於電商平臺來說,可以真實模擬用戶登錄後,點擊了”購買“,進入了購買頁面。以下是操作介紹:

1、進入壓測大師首頁,選擇一個已有的項目進入,如沒有項目可以新建項目
技術分享

2、創建一個新的URL測試,如下圖:
技術分享

3、在測試設置部分,填寫壓力預估的最大人數
技術分享

這裏當配置人數大於400時,為防範非法攻擊等現象,需要對被測域名進行認證,點擊域名認證按照提示認證即可。

4、在“客戶端請求“點擊”上下文變量“,開始配置
技術分享

5、 “上下文變量設置“是為了實現URL之間參數信息的傳遞,因此需要點擊右下角的”+一個URL請求“增加一個URL,然後保證第一個URL的”變量名“與第二個URL的字段保持一致
技術分享

6、“提取方式“通常選擇”鍵值對“較多(具體使用可根據實際情況),選擇想要傳遞信息的”header名稱“,確定”提取規則“。”提取規則“中所填寫的就是傳遞到下一個頁面的信息,比如電商平臺用戶的會員信息。
技術分享

那麽”提取規則“應該填寫什麽呢?我們需要在URL頁面中去尋找這個”鍵值“。

首先在chrome瀏覽器中輸入第一個URL,點擊F12,點擊Network,刷新一下頁面之後點擊最左側的”setcookie_prep.php“,找到對應的header“Set-Cookie“,後面order_id後的值,就是我們將要傳輸給下一個URL的信息。
技術分享

7、完成了”上下文變量“的設置之後,在“測試模型“中的場景中選擇”上下文“模式,分別輸入兩個URL。
技術分享

8、 如果自有服務器,則可以在“服務器監控“的”添加監控“中設置服務器信息;如果沒有,則可以點擊”立即執行“開始測試
技術分享

“全局參數化“實現”商品遍歷“場景

“全局參數化“實現的是通過自動更改”index“字段中的參數,實現遍歷電商平臺上所有商品頁面,對電商平臺上所有的商品頁面模擬真實的用戶壓力。

技術分享

1、點擊右上角的“全局參數化“的設置按鈕,開始設置全局參數化
技術分享

2、點擊“添加“,添加參數,將參數名修改為想要測試的字段,比如上面的”index“字段。另外參數化形式中有”自增“、”隨機值“和”定長“三種配置方式。

“自增“可以設置”最大值“和”最小值“,比如最小值設置1,最大值設置100,就可以自定義服務器壓力,遍歷電商平臺上參數值為1-100的所有商品;

“隨機值“可以實現在自定義範圍內隨機對某商品頁面進行壓力測試;

“定長“通過設置一定長度下的數值,在這個範圍內的所有商品頁面進行隨機的壓力測試,比如定長設置為3,則會在”000-999“”aaa-zzz“之間進行隨機的壓力測試。

技術分享

“全局參數化“可以設置”自增“、”隨機值“和”定長“三種形式

技術分享

“全局參數化“下的”定長“參數設置

對電商平臺來說,要進行壓測的部分不止是遍歷所有商品頁還有模擬真實用戶購買那麽簡單,還會有搜索,聊天,收貨,評價等更多的功能,本文通過兩個簡單的場景示例,可以幫助電商網站把測試成本降到最小,把測試效果放到最大,避免讓電商平臺的買家因為無法付款而流失。

做好這些,才能做出完整的電商產品。


WeTest壓測大師 服務了包括王者榮耀、龍之谷手遊、火影忍者等多款高星級手遊, QQ、NOW直播等明星產品,更是服務了攜程、京東、特侖蘇以及各類規模的電商產品,此次推出”電商行業壓測解決方案“,希望能夠幫助開發者真實模擬電商用戶使用場景,幫助開發者發現服務器端的性能瓶頸,進行針對性的性能調優。在保證用戶流暢體驗的同時,也能降低服務器采購和維護成本,實現用戶與電商開發者的技術共贏!

“壓測大師”目前已經開放對外,目前更有低至四折的時效資源包優惠,歡迎大家的使用!

體驗地址:http://wetest.qq.com/gaps/

如果對使用當中有任何疑問,歡迎聯系騰訊WeTest企業qq:800024531

雙十一臨近,怎樣讓買家流暢地秒殺? ——騰訊WeTest獨家開放電商產品壓測服務