想做iPhoneX搶購活動?壓測大師先教你優化網站後臺
北京時間9月13日淩晨1點,iPhone 10周年,在Apple Park喬布斯劇院,蘋果發布了三款新iPhone。全面屏iPhone X來襲,這款被定義為未來的智能手機黑科技滿滿:全面屏,無線充電、面部識別“Face ID”以及跟蹤你臉部動作的Animoji。和往年的蘋果秋季發布會一樣,發布會在開始之前就獲得了極高的關註,蘋果官網也會承受極大的並發壓力,看看往年的情況:
2014年的iPhone 6預購的情況:
2014年9月12日下午三點,香港各個公司的辦公平臺都在不斷的刷新蘋果官網,當天蘋果官網無法承載用戶壓力導致無法訪問,網頁通過多國文字顯示“我們將很快恢復服務”。
時隔一年,iPhone6s的預約情況:
9月12日,距離iPhone 6s開始預約不到兩小時,嘗試打開蘋果官網瀏覽,結果顯示無法訪問。不光是蘋果中國官網,美國以及中國香港、中國臺灣等地均出現了類似故障。
今年,蘋果官網早早的在發布會前5小時就開始維護,而今年,蘋果官網沒有再出現官網崩潰的情況。
網站的訪問速度是企業必須要做好的事情。谷歌和一些網站的研究表明,用戶們只願意訪問那些打開速度最快、性能最好的網站。一個網站每慢一秒鐘,就會丟失許多訪客,甚至其中很多訪客永遠不會再次光顧這個網站,對於APP來說,也是同理。
眾多電商公司開始磨拳擦掌開始做iPhone8和iPhoneX的活動了,不過這裏必須要問自己一句,你的活動頁面準備好了嗎?
活動前的壓力測試,是做預約搶購活動必須經歷的一個測試環節。
制定壓測目標
對活動頁面進行壓力測試的根本目的,是要實現活動頁面上線時能夠正常運行。不過在壓力測試前,需要對“用戶訪問頁面”的邏輯有清晰的認識。
這裏舉個例子:
中午去“海底撈”吃飯。 “海底撈”就是你的活動頁面。客人去吃飯,就是用戶對這個活動頁面發起請求,對這個頁面造成了一定的負載。客人越多,這個頁面負載就越大。幾個桌子的客人一起開始點菜,就是對你的活動頁面產生了並發。同時,其他桌有的在吃菜,有的在等菜,這些都是並發進行的事務。所以,一個請求會有多個事務產生,比如:點菜,下單,上菜,買單等步驟。
那麽如何衡量這個飯店的承載能力好壞呢?
1、先看客人能不能一起進來,飯店能同時容納多少人進來,就是並發量
2、客人進入飯店,發起下單的請求後,飯店要花多長時間上菜,我們稱之為響應時間
3、飯店每秒可以給多少客人上菜,我們稱之為TPS(每秒處理事務數)
了解了這些指標之後,就基本可以很清晰的制定壓測的目標了。
用戶可以根據自己活動頁面的實際需求,給這些指標設置具體的數值。例如,這邊以某個壓測大師的合作產品為例,指標要求設置如下:
● TPS:>1500次/s
● 響應時間:<200ms
● 並發量:400
創建測試
在制定完壓測的目標之後,需要選擇一個合適的壓測工具,這邊以WeTest壓測大師為例:
1、進入騰訊WeTest官網,http://wetest.qq.com/
2、選擇“性能測試”下的“服務器性能”
3、進入項目(如果沒有創建過項目,點擊“創建新項目”)
4、進入項目後,點擊壓測產品首頁中的創建測試按鈕,選擇URL測試。
5、填寫名稱和用例備註,確定壓測的機器人配置。
根據活動頁面的承載要求,並發人數為400,因此測試的起始人數就可以設置為400,每隔30秒增加0人,最大人數為400,代表頁面上線後便產生了400的並發人數,並持續了30秒。 (30秒可增加,代表400並發的持續時間)
6、新建客戶端請求,確認要壓測的地址和客戶端請求方式。
客戶端請求包括Web,H5和APP接口等多種形式,方法選擇可選GET和POST(在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。GET - 從指定的資源請求數據;POST - 向指定的資源提交要被處理的數據),協議可以選擇“HTTP”和“HTTPS”。
客戶端請求截圖,圖中填寫了WeTest的測試地址
7、確認壓力源,外部服務器選擇“騰訊雲”即可。
8、編輯測試模型,根據實際要求,如果只有一個壓測場景,把100%的壓力都放在該場景上。
9、開始測試。點擊“立即執行”,開始測試。
結果查看與分析
點擊“立即執行”之後,測試會馬上進入排隊系統,如果壓力源系統內有空閑資源將馬上執行測試。
在測試過程中,測試報告頁面會實時顯示“人數趨勢”和“收發包率”,用戶可以實時查看接口的壓測情況。
總體概況
壓測結果可以首先查看總體的情況,了解本次壓測的結果。
再來回顧一下活動頁面主要關註的三個指標:
● TPS:>1500次/s
● 響應時間:<200ms
● 並發量:400
壓測大師測試報告頁面會顯示總體的數據概況,用戶可以通過這些數據了解壓測的基本結果。在服務器優化前後我們分別選取了兩份不同的測試報告,內容如下:
測試報告一:
響應時間2259.03ms超出200ms, TPS 82.44次/s低於1500次/s的要求,這次測試結果不符合活動要求。
測試報告二:
經過優化後,活動頁面的響應時間和TPS均滿足要求,服務器優化很成功
具體數據情況
在測試過程中,可以通過“事務數據“查看測試過程中的問題詳情。
觀察下圖右側“請求統計”中成功、失敗、錯誤和超時的比例情況,了解此次壓測收發包的精確結果。
下圖右側的“耗時統計”獲取各類具體的耗時情況。
測試報告一:
此份報告可以看出TPS最高才達到了100左右,不滿足測試需求
而看”響應時間“的統計圖,可以發現從剛開始400的並發,服務器的響應時間就到了1000ms。
測試報告二:
此份報告可以看出最低的TPS便達到了1600次/s,滿足測試需求;
通過對活動頁面反復的調試和壓力測試,開發者可以迅速的發現服務器性能的瓶頸,並加以修復,保證頁面在活動當天可以承載足夠的壓力,完成一個成功的活動。
WeTest壓測大師旨在降低開發者在服務器性能測試方面的門檻,迅速發現服務器端的性能瓶頸,進行針對性的性能調優,降低服務器采購和維護成本,提高用戶留存和轉化率。目前主要優勢如下:
● 一分鐘發起測試,無需編寫腳本
● 無需配置壓力機,隨開隨用,輕松發起十萬壓力
● 支持HTTP、HTTPS等協議,覆蓋Web,H5,APP,遊戲等主流場景
● 實時查看測試報告,多維度報告對比,迅速定位性能瓶
目前WeTest壓測大師已經正式對外開放:
體驗地址:http://wetest.qq.com/gaps/如果對使用當中有任何疑問,歡迎聯系騰訊WeTest企業QQ:800024531
想做iPhoneX搶購活動?壓測大師先教你優化網站後臺