1、MTSC2020中國互聯網測試開發大會深圳站TESTING SUMMITCONFERENCE CHINA 20202020.11.20-21一中國深圳寶立方國際酒店主辦方:TesterHame#page#MTSC中國互聯網測試開發大會TING SUMMIT CONFERENCE CHINA202流量回放在酷家樂的演進歷程肖昌奔-酷家樂主辦方:TesterHeme#page#MTSC中國互聯網測試開發大會前言PREFACE在面臨系統重構、拆分、中臺化時,如何有效高效的進行回歸測試是個很大的難點?;谶@點,我們結合了公司內部的一些資源平臺,實踐了一套流量回放的體系已經在多條業務線有較好的實踐廠商酷
2、家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會CONTENT0102.03背景總結展望演進歷程廠商酷家樂主辦方:TesterHame#page#中國互聯網測試開發大會MTSC酷家樂架構前臺業務線工具平臺輸出引/擎素材管理用戶平臺商業平臺DDS參數化編輯器施工圖openapiDTSDCSusercenter鋪法編輯器清單dyhyuncoreMicro-taskpms服務粒度細化CMSRStobcollege中臺中臺化趨勢商品中臺搜索中臺用戶中臺漳染中臺方案中臺基礎設施前后端分離監控管理中間件Devops運維SOADBVTOADTetris警報MooNGatlabFar
3、osTDDL服務治理BeaconJenkinsCI廠商:酷家樂主辦方:TesterHeme#page#MTSC中國互聯網測試開發大會挑戰困難服務數量眾多且變更頻繁中系統重構如何快速回歸?如何高效率的進行有效測試?如何盡可能廣的覆蓋測試范圍?如何提高提測質量?最好讓開發自測,測試不介入測試廠商:酷家樂主辦方:TesterHeme#page#MTSC中國互聯網測試開發大會如何高效且有效進行測試2流量回放質量效率引入優秀工具整合公司資源廠商酷家樂主辦方TesterHeme#page#MTSC中國互聯網測試開發大會CONTENT0102.03背景總結展望演進歷程廠商酷家樂主辦方:TesterHame#
4、page#MTSC中國互聯網測試開發大會一些優秀的開源工具GGREPLAYC工具特性aterGoreplay支持HTTP請求的錄制和回放Ditty支持HTTP,提供diff能力,可以智能降噪Repeater提供錄制、回放、mock等能力,擴展性強DIFFYRDebug支持世界上最好的語言,不支持javaThe Kung Fu ReviewC廠商Q酷家樂主辦方:TesterHame#page#中國互聯網測試開發大會MTSC簡單Demo完美適配DiffyNewGoreplayProxyResultPrododold廠商酷家樂主辦方:TesterHeme#page#MTSC中國互聯網源試開發大會簡單
5、Demodujy安dify花GET-dds-api-c-prRequestdesignservicedesignservice111.217Primary ResponseCandidateResponsefa1s降噪后5.31anlef廠商酷家樂主辦方:TesterHeme#page#MTSC中國互聯網源試開發大會酷家樂現狀環境ECS&K8S線上穩定版本DevSitBetaProdStableApp1App.App1App2App1App2.App1App2.App1App2.DBD6middlewaremiddleware(zk、toad、soa)(zk、toad、soa)(mysql、c
6、ach、m)(mysql、cache、m)廠商Q酷家樂主辦方:TesterHame#page#MTSC中國互聯網網試開發大會酷家樂現狀SOArequestSOAresponseProxyConsumerRoute酷家樂服務間調用本質上還是HttpClient提交reques到負載均衡HtpClient提交LoadBalancingProviderHttpCient并執行sonborequestresponse廠商酷家樂主辦方TesterHeme#page#MTSC中國互聯網測試開發大會存在的問題刀19搭建一套diffy環境有成本,且管理雜亂無章DO如何準確篩選出只讀接口?設Response為密
7、文/壓縮/二進制廠商酷家樂主辦方:TesterHeme#page#MTSC中國互聯網測試開發大會統一管理平臺Kudiffy銀入服務用戶總數26業務線要蓋度7/10y總數7導流服務新建任務新建任務(4800)dms-sit230dds-sit235)ble239)261)服務維度管理Diffy0uic.de305)ny63473民0真口n廠商酷家樂主辦方:TesterHeme#page#MTSC中國互聯網測試開發大會接口智能篩選請求類型請求詳情ddgep利用監控調用鏈智能篩選qpm:30.78次分川“/seleEMouds1.把目標接口對數據庫操作做一波過濾nct*from usehere us
8、erid =?/MySQLMETASUserMappergetUserqpm:44.61次/分/(p6r:-0m2.查詢api子調用epm:0次分口口廣W/SELCqpm:43.66次分ECTuserid.accountidevelversio3.把被調用的api對數據庫的操作做一波過濾epm:0次/分ntype,logo,nameASbusinessAcCnuntName,rootaccountidFROMbusMySQL5qqpm:9.12次/分nessaccountWHERE userids?ANr.mDdeleted=0/*+META(sBusinJar包形式接入業務方特殊邏輯epm:
9、0次分essAcCountMapporgetBusinessByUsrd】P川/SELBMySQLECTsda2.areaidFROMsysdictareaASsda1 JOINsysdictarea ASsda2SONsda1.parentareaid=sda2.areaidWHEREsda1.areaid=?LIMIT1/+META(s“SysDictAreaMapper.getParentAreald”/廠商酷家樂主辦方:TesterHame#page#中國互聯網測試開發大會MTSC影子表數據安全保障一GatewayXUIGN接入層皖t-1APP1APP2應用辰APPNBeta環境回放如
10、何確保不污染線上數據?t=1TDDLJedisossclientmongoclientMysaL/RDSRedisOSSMongo0SSMSaVRDSRedisMongo_testtest廠商Q酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會拓展延伸Dify思路Diffy能力實時降噪接口自工具平動化臺流量回放日常測試基本能力拓展延伸廠商酷家樂主辦方:TesterHeme#page#中國互聯網測試開發大會MTSC拓展延伸日常測試引流平臺內部工具接口自動化舉個例子生成指定diffy服務MoonKudiffy參數類型示例leftCuserldDiftyGoreplayCm
11、db“designldaplanlda)uB(“userld”DBSOA業務jar包“designldbplanldb下發命令/腳本/gorepliright2Cuserld”“designdb”planldc”生產流量diff降噪能力提取Beta ServiceBeta ServicePodDBProd DB_TEST廠商:酷家樂主辦方TesterHeme#page#MTSC中國互聯網測試開發大會優缺點優點缺點DDL福中智能降噪不支持寫請求回放全鏈路校驗做不到路環境回放普適性廠商:酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會寫請求回放思考?影子表借用影子表的思
12、路著都生成一份影子表,讀真實表,寫景可以驗證全鏈路湖冷單服務我驗舍鏈路借鑒阿里doom的思服務維度,把服務外部的交互全部包括子調用、存儲定Repeater廠商:Q酷家樂主辦方TesterHame#page#中國互聯網測試開發大會MTSC簡單Demo出口流量錄制&mock入口流量錄制&回放serviceBserviceCServiceserviceADB1DB2repeatersoa、mybatis、jedis、eS。廠商酷家樂主辦方:TesterHame#page#簡單Demoprod server必要插件:http、soa、mybatis次要插件:mongo、es、kafka、guavaca
13、che等repeater錄制dev server回放consolerepeaterMYSQLS廠商Q酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會實踐中的問題&解法在各組推廣中遇到問題時,排查耗時耗力中建立日志中心,定時拉取repeater日志解析特定日志,統一分析排查,減少人工投入,加快推廣進度廠商:酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會實踐中的問題&解法回放結果排查成本高給流量加版本號,對應服務部署的Commitid中借用diffy的思路,先回放到穩定環境,把diff作為噪音,篩選掉子調用異常部分的流量再回放到目標環境,把
14、結果做降噪處理廠商酷家樂主辦方:TesterHeme#page#MTSC中國互聯網網試開發大會實踐中的問題&解法有效流量成功回放到stable,結果diff是有效流量stable請求子調用是否都mock上?百Q無效流量回放開始批次回放數量失敗數量否有效原始1106243查es獲取record信息是否需要降回放到目標服務128過濾944處理回放結果944降噪先回放到降噪服務存儲結果數據調diffy進行降源比對處理回放結果廠商酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會實踐中的問題&解法應用名:口G口業環境:采樣率5066啟用插件httpnBatis回放的流量數量不
15、均衡redisXkafka-黑名單:/heaithzX/farcs黑白名單過濾5x白名單以接口維度設置錄制采樣率mock:是否Mo利用監控流量數據,智能生成采樣比例,流量占比低于闊值則百分百采樣接口采樣率/coll/tEDfcollegez/testos保存返回廠商酷家樂主辦方:TesterHame#page#MTSC中國互聯網源試開發大會Kurepeater接口家合好道家發。入口流方選綠作75CEPo264招量四校O122OE5o把量四校CET43提量四紋Po二E43od二口OET4082Po提量風收o天失敗國收的間回校結果方法入口流量(aTaeDRepeatenoGE2020-06-111
16、4422GET2020-06-11142454E廠商酷家樂主辦方:TesterHame#page#應用version回放條數回放成功率發現bug數量效果2200099.85%185391200099.95%實踐成果口od0312 013000100%0流量回放能力服務7條業務線,100+個服務od0312_0303408899.94%10+工具平臺接入Kudifly5852066190778982620+接口自動化服務接入Kudiffy能力,編寫用18例效率大大提升585342295.402131388通過平臺(Kudiffy&Kurepeater)累計發現200+個BUG580284597.
17、33%5131370【成果和目標】dds接口用例成功率提高10%,精準校驗100%,最近的送代中發現11個新版本導致的問題。廠商:Q酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會演進歷程優秀工具Diffy能力DiffyGoreplayDiffy思路內部平臺Repeater探索中廠商酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會CONTENT0102.03背景演進歷程總結展望廠商酷家樂主辦方:TesterHame#page#MTSC中國互聯網測試開發大會總結展望Kudiffy&Kurepeater深度融合,智能判斷適用場景數據中心流量數據沉淀后,封裝各種個性化的數據,比如壓測數據跨環境數據拷貝復雜方案數據、參數化模型數據廠商:酷家樂主辦方TesterHeme#page#中國互聯網測試開發大會MTSC酷家歷廠商酷家樂主辦方:TesterHeme#page#謝謝THANKKS