您好,登錄后才能下訂單哦!
服務端性能保障之流量控制測試方法
7月底最后一個周日,我們品課學院線下性能提升班第二期算是正式開課,零基礎的學員不少,有測試管理經(jīng)驗、多年開發(fā)或者測試經(jīng)驗的人員也有幾位,但是各個都很上進好學,不是因為學習而學習,而是有共同理想而走在一個教室,交流探討專業(yè)知識。他們謙虛且上進、因為他們知道做著沒有累積性的工作,卻期望老板替你加薪?做得久也未必能領得多,一切以實力見真章,所以他們珍惜每一堂課,認真筆記,發(fā)散性的問問題,無論功能測試、測試管理、行業(yè)知識、架構設計、軟硬件知識等等,的確很考驗老師的知識面和實戰(zhàn)經(jīng)驗。
不同期的學生,不同階段的學習提升中,學生問的問淺題深不一,深廣度不同、天南地北都有,確實很有趣,在教學交流中也提升豐富我的知識體系,也會有碰到一些問題,我在平常工作中不會考慮那么完善,也有因知識面出現(xiàn)缺漏,讓我課后彌補,讓我逐漸完善我的管理體系和各類領域專業(yè)知識,并運用到實際項目工作中,例如第二節(jié)課就有學生問道數(shù)據(jù)庫表設計中char、varchar在性能上的區(qū)別與用法、不同類型磁盤的性能影響、APP弱網(wǎng)測試、南方與北方無線網(wǎng)傳輸異常原因、數(shù)據(jù)庫試圖使用場景、并發(fā)數(shù)與在線數(shù)如何估算等等,不同的技術問答題,都有不同的論證方法,都能寫成一篇技術文章。
本章介紹的是系統(tǒng)流量控制或者說限流,也是在課堂中一個學生問到一個問題,個人覺得值得探討,因為該問題在2012年的時候,我曾測試過一個國有大行大型項目,該系統(tǒng)流程復雜、規(guī)則校驗多、數(shù)據(jù)量龐大、并發(fā)用戶數(shù)多且集中并發(fā)度高,客戶的要求與項目運維運營技術問題,確實深有體會,加上互聯(lián)網(wǎng)交易時代,各種APP產(chǎn)品鋪天蓋地,各種營銷手段層出不窮,目的就是為了搶奪市場,搶奪用戶流量,這時我們無法使用正常手段進行評估系統(tǒng)用戶數(shù),為了提高系統(tǒng)的可靠性、用戶體驗等,軟件開發(fā)會從不同架構設計角度,非功能性設計等來完善架構的性能,這也是微服務能慢慢風靡原因之一,通過微服務架構來提高系統(tǒng)在高并發(fā)下的高可用性、高可靠性等。
產(chǎn)品需流控背景
例如各種電商APP出現(xiàn),確實對于未知的市場用戶數(shù)量在性能測試過程中確實很難預估將來在線用戶數(shù)、注冊用戶數(shù)、并發(fā)用戶數(shù),甚至游客查詢產(chǎn)品信息用戶等也會對服務產(chǎn)生壓力,這種確實很難估算,那我們?nèi)绾巫瞿兀?/span>
現(xiàn)在各類電商,美團、餓了嗎、淘寶、JD等在應對秒殺、大促、雙11、618等高并發(fā)性能壓力場景下,對服務端的流控已經(jīng)成為硬性架構設計指標要求,目的是為了保證系統(tǒng)在高壓下能平穩(wěn)運行起到高可用性、高可靠性作用。
其實很多對外接口服務也是一樣為了防止外來請求數(shù)據(jù)高于自己預估指標,會對外服務接口設置接口限流作用。特別是微服務系統(tǒng),其接口請求可能來自很多外系統(tǒng)調(diào)用,對于這種海量接口請求的微服務,接口限流很重要。
應對哪些指標進行流量控制呢?
我們性能測試過程涉及的性能指標有吞吐率、TPS、HPS、并發(fā)用戶數(shù)這些技術性指標等都可以當作流控的指標,當然業(yè)務上的某些指標也可以,例如輸入驗證碼的時間限制、短信驗證碼輸入次數(shù)、機構用戶限制、JSF請求限制等。
一般情況下,對請求數(shù)就是HPS進行流控比較方便,因為該值可查、可控性也高,,通過性能壓力測試容易壓力與定位。
場景案例介紹
下面場景案例是本人在2012年時,協(xié)助國內(nèi)一家比較大型的城商行對信貸系統(tǒng)進行流量控制驗證性測試介紹。
項目背景:
對某系統(tǒng)流量監(jiān)控測試主要驗證在開啟監(jiān)控工具進行穩(wěn)定性測試對抓取響應超時的JSF與UCC時是否對系統(tǒng)內(nèi)存等資源使用有影響;同時在開啟流量訪問數(shù)控制開關時針對系統(tǒng)并發(fā)一定數(shù)量的用戶數(shù)訪問特定的JSF、UCC是否進行功能性控制等驗證性測試。
測試目的:
流控用戶訪問限制性測試主要側重系統(tǒng)在并發(fā)一定用戶數(shù)下集合訪問某個業(yè)務交易點的壓力情況下,在增加用戶數(shù)時是否前端提示用戶數(shù)訪問限制信息提示。
測試策略:
主要測試策略,在對某一個UCC請求超過一定數(shù)量時,驗證是否彈出訪問量超過流量開關控制最大訪問提示信息。
測試結果:
在流量開啟設置好業(yè)務交易控制場景和性能測試場景后,設置瞬間并發(fā)下操作某一個業(yè)務UCC服務請求,當超越該請求時應該提示如下信息,確保系統(tǒng)受流控成功。
并在壓力測試過程檢查內(nèi)存回收情況、服務器資源資源利用率、session會話回收情況,確保此時的會話數(shù)的正確性和回收率的準確。
而在loadrunner壓力測試場景中,也可以看到如下錯誤提示信息,說明流控在并發(fā)下功能的準確性。
以上場景是針對業(yè)務請求進行流量控制,算是業(yè)務流控、而一般微服務時代是技術接口、集群部署方式的這時流量監(jiān)控可能復雜性更高,例如,對每一個接口服務的調(diào)用頻度而限制、調(diào)度頻率的設置等進行驗證下非功能性測試。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。