原創(chuàng)|行業(yè)資訊|編輯:龔雪|2016-04-20 14:52:26.000|閱讀 1341 次
概述:除夕那晚你咻一咻了嗎?1808億次互動(dòng),16倍的提升,峰值177億次每分鐘的海量數(shù)據(jù)背后,支付寶是怎么抗住的?
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
除夕那晚你咻一咻了嗎?1808億次互動(dòng),16倍的提升,峰值177億次每分鐘的海量數(shù)據(jù)背后,支付寶是怎么抗住的?
螞蟻金服旗下的支付寶經(jīng)過十幾年的發(fā)展,從簡(jiǎn)單的支付工具逐步發(fā)展成互聯(lián)網(wǎng)金融平臺(tái)。2013年余額寶的崛起就是互聯(lián)網(wǎng)金融平臺(tái)升級(jí)的標(biāo)志型事件,這一年支付寶順利進(jìn)行了PC向無線的布局,可以說架構(gòu)成功升級(jí)到移動(dòng)互聯(lián)網(wǎng)金融平臺(tái)。
經(jīng)過兩年的發(fā)展,2015年口碑和社交業(yè)務(wù)的崛起讓支付寶架構(gòu)進(jìn)一步在原有架構(gòu)基礎(chǔ)上拓展出支持線下市場(chǎng)和社交的生活互動(dòng)型架構(gòu)。2015年錢包9.0的發(fā)布,這個(gè)里程碑式的項(xiàng)目初步奠定了支付+移動(dòng)互聯(lián)網(wǎng)金融+生活互動(dòng)型混合架構(gòu)。架構(gòu)演進(jìn)示意圖如下所示。
2015年12月份,支付寶中標(biāo)央視。支付寶和央視聯(lián)合搞活動(dòng),是支付寶有史以來最大規(guī)模的活動(dòng)。到底規(guī)模多大,當(dāng)時(shí)的我們都沒有任何概念。唯一能得到的信息是,歷年觀看春晚的人數(shù)大約在7億多,支付寶的年度活躍用戶4億多,至于用戶的行為習(xí)慣,沒有任何參考模型。
支付寶團(tuán)隊(duì)在這樣的情況下,確定了這樣一個(gè)原則:優(yōu)先確保核心鏈路,保證核心鏈路上用戶體驗(yàn)順暢。萬一出現(xiàn)系統(tǒng)容量不足,系統(tǒng)必須能扛住洪峰,不被壓垮,即使這種情況下也要給用戶盡量友好的提示文案。在確保主鏈路基礎(chǔ)上,還需要照顧到支付寶App內(nèi)幾百個(gè)非關(guān)鍵鏈路,對(duì)于非關(guān)鍵鏈路按照業(yè)務(wù)重要程度分為4個(gè)等級(jí),根據(jù)等級(jí)分配不同的資源配置。
經(jīng)過2個(gè)月的精心準(zhǔn)備,在激動(dòng)人心的4小時(shí)結(jié)束后,整個(gè)春晚支付寶系統(tǒng)穩(wěn)穩(wěn)地扛住了4波洪峰,表現(xiàn)平穩(wěn),無論是核心鏈路還是非核心鏈路,沒有出現(xiàn)任何問題。4個(gè)小時(shí)內(nèi)幾乎沒有用戶因?yàn)橄到y(tǒng)、功能上的問題而產(chǎn)生投訴,客服也沒有任何咨詢壓力。
用戶“咻一咻”在第二場(chǎng)活動(dòng)達(dá)到高潮,累計(jì)互動(dòng)次數(shù)達(dá)到1808億次,是去年的16倍。在當(dāng)晚的20點(diǎn)38分,“咻一咻”峰值達(dá)到177億次/分鐘。支付寶到底是怎么抗住的?
主要是以下5個(gè)方面:
這就是為什么很多看起來不是很復(fù)雜的網(wǎng)站、APP,卻需要大量頂尖高手來開發(fā)。并且隨著企業(yè)需求的日益增長(zhǎng)以及對(duì)算法的不斷深入創(chuàng)新,我們也會(huì)越來越多的遇到這樣的性能壓力問題。
今天,小編就帶著大家來認(rèn)識(shí)這幾款自動(dòng)化測(cè)試工具,幫助您找出APP的性能缺陷。
Monkey是一款壓力測(cè)試工具,使用簡(jiǎn)單。所謂壓力測(cè)試就是亂點(diǎn)。。。模擬各種各樣奇怪的操作,看你的app能不能抗的住。下圖所示,是簡(jiǎn)單命令的用法。
舉例來說:
1 android shell monkey -p 你想測(cè)試程序的包名 -v 500
比如 我現(xiàn)在想看看android 系統(tǒng)自帶的日歷應(yīng)用 在壓力下表現(xiàn)如何。
你看,這個(gè)模擬器就開始瘋狂點(diǎn)擊了。當(dāng)然在實(shí)際使用中,一般是將次數(shù)調(diào)到 幾十萬次到幾百萬次,然后下班以后開始跑。第二天來看結(jié)果,看看在哪里出了問題。使用非常簡(jiǎn)單,但是作用也非常有限。不過很可能幫助您找出app的一些隱藏極深的bug。
MonkeyRunner是一款自動(dòng)化測(cè)試工具,需要您編寫腳本。例如,測(cè)試需要經(jīng)常用到的冒煙用例,等等。尤其是在4.x以下的機(jī)型里,由于無法使用uiautomator,MonkeyRunner幾乎就是唯一的自動(dòng)化測(cè)試方法了。
下面我舉個(gè)例子,比如我們app里最常用的登錄功能,我們就可以編寫一個(gè)腳本來完成。
1 # coding=UTF-8 2 from com.android.monkeyrunner import MonkeyRunner as mr 3 from com.android.monkeyrunner import MonkeyDevice as md 4 from com.android.monkeyrunner import MonkeyImage as mi 5 from com.android.monkeyrunner.easy import EasyMonkeyDevice 6 from com.android.monkeyrunner.easy import By 7 8 #定義安裝文件路徑 9 installPackage = 'C:\\Users\\Administrator\\ViewPageTest\\app\\build\\outputs\\apk\\app-debug.apk' 10 11 #要測(cè)試的程序的包名 12 apkPackageName ='com.example.administrator.viewpagetest' 13 14 #要啟動(dòng)的第一個(gè)activity的名稱 15 initActivityName=apkPackageName+"/com.example.administrator.viewpagetest.MainActivity" 16 17 18 device = mr.waitForConnection() 19 20 21 #安裝apk包 22 device.installPackage(installPackage.decode('utf-8')) 23 24 25 #啟動(dòng)應(yīng)用程序 26 device.startActivity(component=initActivityName) 27 #防止啟動(dòng)金喜正規(guī)買球面 需要時(shí)間過長(zhǎng) 28 mr.sleep(3) 29 30 easy_device = EasyMonkeyDevice(device) 31 32 mr.sleep(3) 33 34 35 36 easy_device.type(By.id('id/username_et'),'zhangsan') 37 # 這里的mr靜止 主要用于演示demo上的gif效果 38 mr.sleep(2) 39 easy_device.type(By.id('id/password_et'),'123456') 40 mr.sleep(2) 41 easy_device.touch(By.id('id/submit_bt'),md.DOWN_AND_UP)
然后運(yùn)行該腳本,效果如下:
大家可以看到,這個(gè)腳本可以自行完成:安裝apk、輸入用戶名和密碼、點(diǎn)擊登錄按鈕。這里我就不繼續(xù)往下寫這個(gè)腳本了。有興趣的同學(xué)可以自己嘗試完成日常工作里的那些冒煙用例。
用腳本來自動(dòng)完成這些測(cè)試用例意義重大。畢竟每次版本發(fā)布之前,手動(dòng)點(diǎn)擊去完成全部的測(cè)試用例是很麻煩的一件事情。
上面我們提到了UiAutomator,那我們就順便來講講UiAutomator。這個(gè)工具我個(gè)人認(rèn)為是所有android 程序員都必須要掌握的。有了這個(gè)強(qiáng)大的工具,我們就可以底氣十足地說“No problem!”
UiAutomator幾乎能模擬對(duì)android設(shè)備的所有操作。使用java語言就可以了,不會(huì)編寫腳本代碼的android 程序員也可以輕松上手。并且android的所有api幾乎都能使用,簡(jiǎn)直酷到?jīng)]有朋友!比android studio自帶的ApplicationTestCase強(qiáng)到不知道哪里去了。具體的使用方法,大家可以參考。
這個(gè)工具大家應(yīng)該都認(rèn)識(shí),簡(jiǎn)直是性能測(cè)試界的神器,像一個(gè)標(biāo)桿屹立在測(cè)試人的心中。既然提到了它,我還是給大家簡(jiǎn)單介紹一下這款工具。Loadrunner是一款功能最全面最強(qiáng)大的性能測(cè)試軟件,并且可以進(jìn)行腳本錄制,無需編寫腳本了。關(guān)于Loadrunner的腳本錄制大家可以參考這篇教程。試用下載
大家掌握了這些工具的使用方法后,也可以讓自己的APP性能提升很多。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn