重磅开源:阿里妈妈技术质量开源了线上测试MagicOTP和性能测试平台ACP
阿里QA導(dǎo)讀:阿里媽媽技術(shù)質(zhì)量團隊正式開源了線上測試平臺MagicOTP和性能測試平臺ACP,開發(fā)者們可以在Github上自主下載。 |
2020年4月7日,阿里媽媽技術(shù)質(zhì)量團隊開源了線上測試平臺MagicOTP和性能測試平臺ACP。兩個平臺經(jīng)過阿里巴巴廣告業(yè)務(wù)的長期錘煉,在大規(guī)模廣告搜索、推薦系統(tǒng)的線上測試和性能測試上深耕多年,內(nèi)置了面向廣告搜索、推薦領(lǐng)域的工業(yè)級線上測試和性能測試解決方案。
一、ACP(alimama-common-performance-platform)
概述
ACP(alimama-common-performance-platform)平臺是阿里媽媽的全鏈路智能性能測試平臺。區(qū)別于業(yè)界一些開源的工具和平臺,ACP平臺將有監(jiān)督建模、無監(jiān)督建模、混沌工程等智能化技術(shù)引入到性能測試領(lǐng)域;并將其打造為高性能通用的基礎(chǔ)組件。平臺提供了壓測query智能抽取、壓測流程智能調(diào)控、系統(tǒng)指標智能監(jiān)控三大智能化功能;在阿里媽媽實現(xiàn)了無人值守的智能化性能測試。
(github地址:https://github.com/alibaba/alimama-common-performance-platform-acp )
系統(tǒng)核心能力
1.??? C++高性能壓測工具
ACP提供了SYNC同步壓測和ASYNC異步壓測兩種模式;同步壓測的工作模式是阻塞式發(fā)送,異步壓測采用非阻塞并發(fā)模式,目前開源版本支持同步壓測模式。
Chain-Line鏈式的線程管理系統(tǒng),智能調(diào)整內(nèi)部線程和并發(fā)數(shù),最終快速達到指定的qps。
基于Linux內(nèi)核的消息隊列的監(jiān)聽服務(wù),在不需要重啟進程的情況下做到實時調(diào)整qps。
組件:
智能壓測調(diào)控框架
Chain-Line鏈式的線程管理組件
Adaptive Auto Control實時流量調(diào)控組件
Kernel-queue消息隊列讀寫組件
壓測Client工作模式圖:
2.??? 大規(guī)模分布式調(diào)度服務(wù)
性能測試的一個難點是如何高效利用測試資源,在壓測機器有限,壓測機器規(guī)格不一致,壓測任務(wù)消耗硬件資源不一的情況下;如何高效調(diào)度成千上萬個agent是我們要解決的問題。ACP平臺利用zookeeper,使用DFS深度優(yōu)先的搜索算法,實現(xiàn)了資源分配粒度達到內(nèi)核級別,并開源了其產(chǎn)品化的能力。
3.??? 基于歷史樣本的有監(jiān)督學(xué)習(xí)建模及預(yù)估能力
傳統(tǒng)性能測試更多需要人來手工操作,測試效率普遍不高,我們提供了基于隨機森林( random Forest)、線性模型、非線性等多種算法建模組件;用建模、預(yù)估技術(shù)代替人力手動調(diào)壓等操作,用戶可以根據(jù)業(yè)務(wù)場景定制自己的建模方案,此外,我們也提供了多種樣本處理組件。
1)???? 特征樣本歸一化,對于歷史監(jiān)控數(shù)據(jù),我們將樣本(sample)進行歸一化處理(normalization),將不同量綱、不同單位的樣本進行加權(quán)處理,保證后續(xù)建模的精度。
2)???? 特征樣本去噪,歷史監(jiān)控數(shù)據(jù)有很多噪聲,如作弊流量,異常流量,而這些噪聲會直接影響模型的預(yù)估表現(xiàn),減少無效樣本對模型的影響。
3)?????特征樣本轉(zhuǎn)換,feature transformer是將多維特征轉(zhuǎn)為單維(Single-Demension)特征的過程,如服務(wù)器帶寬和qps有著強關(guān)聯(lián),我們將二者做除法得出新特征,即每個請求占用的帶寬(bytes per query),而這種特征能夠直觀反映系統(tǒng)表現(xiàn)。
4.??? 基于實時樣本的無監(jiān)督學(xué)習(xí)建模及預(yù)估能力
我們提供了基于arima模型的無監(jiān)督學(xué)習(xí)建模預(yù)估能力(差分整合移動平均自回歸模型,又稱整合移動平均自回歸模型)。和上述有監(jiān)督建模預(yù)估相比,無監(jiān)督建模預(yù)估準入門檻低,相比于之前的用歷史監(jiān)控數(shù)據(jù)建模的方案,arima不需要人為的收集歷史數(shù)據(jù)和打標。
5.??? 性能測試用例智能生成
Netflix提出了Chaos Engineering,我們基于混沌工程和fuzz思想進一步探索了query智能組合構(gòu)造方案,分鐘內(nèi)智能構(gòu)造千萬級數(shù)據(jù)樣本;解決了壓測數(shù)據(jù)樣本單一,異常場景構(gòu)造成本高,覆蓋率低的問題,從而可以充分驗證系統(tǒng)穩(wěn)定性,魯棒性。
后續(xù)開源計劃
歷史樣本有監(jiān)督學(xué)習(xí)建模及預(yù)估能力
實時樣本無監(jiān)督學(xué)習(xí)建模及預(yù)估能力
基于fuzz的性能測試用例智能生成方案
歡迎通過郵件組 acp-opensource@list.alibaba-inc.com和github issue聯(lián)系和反饋
二、MagicOTP —?線上測試平臺
概述
廣告搜索推薦業(yè)務(wù)上,線下功能測試的覆蓋和線上實際場景總是有一定的gap,深層次的原因是因為業(yè)務(wù)和算法模型強相關(guān),線下不可能覆蓋所有業(yè)務(wù)場景。鑒于此我們通過使用線上的數(shù)據(jù),實時trace和智能化技術(shù)打造了線上智能測試平臺MagicOTP,通過線上測試很好彌補了線下功能測試覆蓋和實際業(yè)務(wù)場景之間的gap,實現(xiàn)了全場景的測試覆蓋保障,同時在阿里媽媽落地了智能化的無人值守的發(fā)布閉環(huán)。
(github地址:https://github.com/alibaba/online-test-platform)
系統(tǒng)核心能力
1.????? 多種線上數(shù)據(jù)采集技術(shù)(時序、分布、規(guī)則采樣、基因變異算法等),節(jié)省人工構(gòu)造測試數(shù)據(jù)的成本,提高測試效率。
2.????? 健壯的規(guī)則校驗引擎,測試數(shù)據(jù)通過規(guī)則進行多維度校驗,相比傳統(tǒng)冒煙的單點固定驗證,具有更高的場景覆蓋度。
3.????? 精準的規(guī)則智能推薦技術(shù)和智能化驗證技術(shù),基于大數(shù)據(jù)分析和字段關(guān)聯(lián)關(guān)系(Association Rules)建模,利用推薦算法和異常數(shù)據(jù)檢測(K-sigma等)實現(xiàn)了智能化的規(guī)則推薦和校驗。
4.????? 高效的多業(yè)務(wù)接入能力,在平臺配置完任務(wù),任務(wù)執(zhí)行過程中自動推薦出基礎(chǔ)校驗規(guī)則,減少開發(fā)成本。當業(yè)務(wù)變更時維護只需簡單修改規(guī)則即可。
開源Roadmap
目前一期提供了基礎(chǔ)的線上請求回放能力和規(guī)則引擎服務(wù),以及基于此的完整的線上測試方案,后續(xù)我們會開源規(guī)則智能學(xué)習(xí)推薦功能和無人值守的發(fā)布驗證方案。
歡迎通過郵件組magicotp-opensource@list.alibaba-inc.com和github issue聯(lián)系和反饋
ACP:
github地址:https://github.com/alibaba/alimama-common-performance-platform-acp
MagicOTP:
github地址:https://github.com/alibaba/online-test-platform
研發(fā)成員:朱藻、橦錄、翰龍、鳳暄、凝珂
寫在最后:在穩(wěn)定性、研發(fā)效能、測試等領(lǐng)域有興趣,期望通過技術(shù)改變測試,引領(lǐng)測試變革的同學(xué)。
歡迎聯(lián)系朱藻!郵箱:zhuzao@taobao.com
?
- END -
fin
開源項目Autotestplat,《自動化平臺測試開發(fā)》作者
隱形字
個人公眾號:測試開發(fā)社區(qū)
長按識別二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的重磅开源:阿里妈妈技术质量开源了线上测试MagicOTP和性能测试平台ACP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅析专题中的构图之美
- 下一篇: 硬盘无法访问设备硬件出现致命错误,导致请