在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

哈啰HiMock和傳統Mock的對比

vliwulianw ? 來源:哈啰技術 ? 作者:崔煥銳 ? 2022-10-09 10:44 ? 次閱讀

哈啰業務數據場景痛點

軟硬件一體化應用場景

f0cccf42-4169-11ed-96c9-dac502259ad0.png ?

用戶從APP端、支付寶小程序、微信小程序、H5和WEB,經過一些核心服務。核心服務通過HTTP或內部的RPC接口,包含用戶增長、配置平臺、綜合平臺、用戶增長等,對應的基礎平臺包括存儲平臺、用戶平臺、算法平臺、開放平臺、大數據、地圖平臺等。物聯網目前主要對接單車、電動車、電池、電柜等。

研發測試階段遇到的痛點

f124afaa-4169-11ed-96c9-dac502259ad0.png ?

單車這里,紅包車數據測試鏈路過長,手工構造一次數據需要0.5天以上;不同入參返回不同結果,難以構造模擬返回數據。助力車這里,超區斷電依賴地圖算法模型,測試線下路上跑來跑去模擬臨區超區耗時過長。

順風車這里,對接眾多第三方平臺,迭代回歸第三方接口,各種場景返回難以構造。支付這里,異常場景眾多,實名認證信息難以構造。

換電這里,不同項目并行開發,對方接口未開發的情況下,開發調試成本過高;無法模擬只支持某個時間段的返回結果。電動車這里,通過單測的方式Mock各種場景代碼量巨大;部分場景Mock需要研發配合改造代碼,侵入性過高,成本較大。

哈啰HiMock和傳統Mock的對比

傳統Mock在哈啰全場景先天性不足

f18c5a38-4169-11ed-96c9-dac502259ad0.png ?

傳統Mock,一是代碼改動頻繁,只要代碼變動,case相關代碼都需要改動,整體耗時較長;二是鏈路簡單,只支持簡單鏈路的Mock;三是Mock難度上,數據構造難,非本業務線同學如果沒有接口文檔,不知道如何快速Mock;四是擴展難度較大,僅支持部分軟件協議,不能擴展。

而哈啰全場景業務特性一是代碼改動難,涉及到多個業務方,研發無法及時配合驗證迭代需求改動相關代碼;二是鏈路復雜,需要支持前后多端、涉及硬件協議鏈路的Mock;三是Mock難度上,并行開發時,多個業務同個接口模擬不同的返回,構造成本較大;四是拓展程度上,需要支持軟硬件協議數據模擬。

打破傳統Mock的設計思路

f1b693b6-4169-11ed-96c9-dac502259ad0.png ?

我們為了打破傳統Mock的設計思路,從以下六點設計HiMock。一是低代碼,代碼開發量少,可以快速搭建框架;二是代碼解耦,不需要用戶改動任何代碼;三是高性能,不影響原有系統的性能指標;四是應用性,用戶可以低成本Mock;五是支持前后置場景,如簽名、回調、數據庫操作等;六是全場景,支持前后端各種協議。

Mock技術支撐全場景業務域的實踐

打破傳統互聯網的軟硬件結合的Mock業務架構

f1e6b15e-4169-11ed-96c9-dac502259ad0.png ?

首先介紹服務鏈路,C端用戶主要來源于哈啰APP、支付寶小程序、微信小程序,通過HTTP網關,再進入各個業務的入口,包括單車、助力車、電動車、換電、順風車等,接下來我們協議攔截之后,再去匹配對應規則引擎里配置的規則來看是不是命中了對應的Mock,并去檢查對應的靜默開關、生效時間、生效范圍、延時、參數替換、后置條件,這些都是通過規則引擎拿到對應的數據。我們通過Mock返回的規則,一站式并支持多端。

接下來介紹產品能力,一是Mock管理,包括case創建、case列表、我的Mock;二是工具管理,主要是YAPI|Swagger接口導入;三是大盤統計,主要是調用統計的分析,包含每個業務域、調用量以及對應的Mock量、各業務線使用的分析等;四是權限管理,包括用戶權限和用戶組權限;五是攔截規則引擎,包括高并發支持、靜默支持、生效范圍和參數替換;六是一體化Mock工作臺,可以集成APP、H5、微信小程序和支付寶小程序,自動接口抓包、一鍵功能,并支持YAPI|Swagger接口導入、接口參數自動獲取、匹配規則參數自動生成;七是自動更新,底層代碼改動,自動更新最新代碼;八是環境穩定性,保證整體研發測試流程不被打斷,Mock可被追溯。

HiMock整體流程

f22f1f52-4169-11ed-96c9-dac502259ad0.png ?

我們case的來源分為三部分,包括HiMock、Fox和第三方。左邊這部分就是用戶請求,分為后端請求和前端請求。后端請求我們通過Agent攔截到對應的協議之后,根據Mock、規則引擎去匹配對應的規則,如果能匹配到,就把對應的Mock結果返回出去。

Agent的下載流程也有兩部分,一是Atlas部署的時候,會去檢查Agent是否存在,如果不存在,會自動下載到對應服務的原容器上或者ECS上面。二是添加或更新case的時候,也會去判斷Agent是否存在。前端請求iOS是針對NSURLProtocol協議進行攔截和轉發到對應的Mock規則引擎,去判斷是否命中;安卓是針對OkHttp協議攔截和轉發,其他協議也可以在這里進行兼容適配處理。

HiMock底層Agent設計

f2c6c104-4169-11ed-96c9-dac502259ad0.png ?

HiMock底層Agent設計主要分四方面,一是字節碼攔截,我們經過大量的對比分析,最終選型ByteBuddy作為字節碼攔截的底層框架,可實現低代碼,迭代敏捷迅速開發。二是攔截協議,我們實現插件化模式開發,可快速實現攔截協議的開發與配置,支持多維度協議攔截。三是殼化Agent,對外暴露一個premain的殼函數,可實現動態代碼更新相關功能。四是后置處理,復雜鏈路信息,需要在Mock 返回之后,執行一些數據庫操作、消息發送、地址回調等。

f319f108-4169-11ed-96c9-dac502259ad0.png ?

在HiMock底層Agent實現上,我們首先把Agent進行一個premain函數的殼化處理,再對各個協議攔截的Interceptor封裝。HTTP協議請求,我們針對CloseableHttpClient、HttpClient、OkHttpClient和RestTemplate等等Class進行攔截。RPC協議,我們有進行RpcHandler Class攔截。針對Mq,我們有Hms進行攔截。同理,其他也是攔截對應的核心請求類,再進行協議的攔截。

HiMock規則引擎設計

f3d68958-4169-11ed-96c9-dac502259ad0.png ?

HiMock規則引擎設計思路主要分三方面,包括高并發、兼容性和多端。在方案調研上,基于不同協議,攔截規則不盡相同,但是作為攔截收口,統一轉為JSON進行參數匹配入參條件。最常用的JsonPath框架有fastJson、jackson、json-path和snack3,經過多輪壓測,我們最終選型snack3,支持的選擇器表達式更豐富,性能較優。

在方案執行上,攔截規則判斷時多條件支持,且支持多條件“與、或”組合等。目前支持的條件有equals、not equals、contains、not contains、in等。在方案落地上,攔截規則參數根據入參自動生成,參數預期值智能匹配。

HiMock平臺系統架構

f419ae90-4169-11ed-96c9-dac502259ad0.png ?

HiMock平臺包含WEB、核心功能、數據層、Agent和Mock服務。WEB主要有DashBoard、Mock管理、權限管理、工具管理和平臺指南。核心功能主要有云容器自動部署、自動化部署、添加Mock、Mock列表、Mock日志、Mock規則、工具管理、權限管理、數據統計和用戶手冊。同時我們要適配一些攔截協議,如RPC、HTTP、TCP、MQ、MQTT、DB、ES。

數據層主要分為Mysql、Redis和ES,我們會把數據緩存到Redis里,再定期匯總到Mysql里,并把Redis里的數據進行清空,減輕緩存壓力。Mock的服務請求被對應的Agent攔截到協議請求之后,Agent訪問Mock服務設置的規則數據,拿到規則數據判斷請求是否被匹配到Mock規則。

HiMock落地使用場景

f51c4b0e-4169-11ed-96c9-dac502259ad0.png ?

HiMock落地使用場景有依賴測試、自動化測試、性能壓測和并行開發等。依賴測試支持 case Mock生效日期和端到端的Mock生效范圍,主要是為了避免某一個case過大影響實際的測試范圍。自動化測試支持自動開啟、關閉對應的Mock開關。

性能壓測支持一鍵靜默,只要把靜默開關打開,所有的調用Mock case都不會生效,這時所有的性能壓測都會走原始的調用請求。并行開發支持生效范圍界定和Mock參數動態調整等。當然我們在測試過程中不要過度依賴基于Mock的測試結果,Mock只是一種提效手段,基于Mock的測試無論如何多么的充分,都不能保證不會遺漏。一個完整的測試策略,一定是由基于Mock的測試和基于非Mock的測試共同組成,二者相輔相成,缺一不可。

HiMock平臺能力介紹

f54a4df6-4169-11ed-96c9-dac502259ad0.png ?

這里介紹RPC接口的新增,在Mock標題里可以根據自己的場景設置標題,如助力車賠付,應用名稱、iface、method是要攔截的對應服務以及它對應的method。在右邊,我們也可以看到對應這兩個應用名稱,后面可以查看Atlas的配置,如果選擇在ClientAppId進行Mock攔截,需要把對應服務的自定義啟動參數中Agent啟動命令配置上去。

Mock環境里FAT和UAT都可以選擇,同一個case多個環境同時生效。生效時間默認是永久生效的,如果填寫生效范圍,只會針對生效時間范圍內走Mock邏輯;下面也有對應的是否開啟的開關。添加規則這里,我們支持從用戶請求日志里自動獲取對應的請求有哪些參數,減少用戶手動填入的復雜度。最下面的請求響應、執行日志和變更記錄,主要用來查看預執行的時候對應這個規則能否匹配到,哪一步攔截失敗,進而去調整Mock匹配規則。

針對復雜場景,我們支持后置模擬回調,包括HMS、HTTP等。

f5b467cc-4169-11ed-96c9-dac502259ad0.png ?

這里是測試請求,測試請求自動填入,也可以根據實際情況進行動態調整,Mock結果即時校驗。執行日志做到了執行過程的匹配,結果校驗可以實時看到匹配規則是否正常匹配,以及匹配的返回結果是否是想要的。

f5df2a5c-4169-11ed-96c9-dac502259ad0.png ?

接下來介紹前端一鍵Mock的功能,左邊是我們的APP端,右邊通過掃碼APP-QrCode就可以看到左邊菜單欄有自動抓包的鏈路信息,點擊后會有接口對應的Request和Response。這里我們可以快速Mock對應接口的返回,或者是Mock異常的返回。

HiMock平臺效果價值回收能力分析

f61c7420-4169-11ed-96c9-dac502259ad0.png ?

我們主要從六部分進行HiMock效果價值回收能力分析,包括接口調用統計分析、Mock業務線覆蓋統計分析、Mock占比分析、業務線Mock運營分析、Mock case統計分析和Mock次數、平均耗時統計分析。

f66c82d0-4169-11ed-96c9-dac502259ad0.png ?

這里是HiMock平臺整體的調用統計分析,可以看到具體某個業務線、當天調用量和對應的Mock次數。左邊是調用統計的趨勢圖,右邊是業務線Mock次數的占比。

后續規劃&探討

f732b1e4-4169-11ed-96c9-dac502259ad0.png ?

Mock平臺我們分三步走,第一步是測試小哥哥小姐姐通過手工Mock的方式人肉抓包Mock返回,后端Mock代碼改動較大,費時費事費人,重復勞動嚴重。第二步是HiMock一體化Mock平臺,可以支持全場景、多端Mock。前端自動抓包一鍵Mock,規則匹配參數自動生成,日志請求自動填充,極大提升了我們Mock case的整體效率。第三步是HiMock智能化,我們后續也會支持適配中間件DB、MQ類型協議的Mock,與仿真實驗室、精準自動化的進一步結合,打造研發、精準測試、高效運營的一體化Mock,并打造智能出行Mock平臺,能夠self-learning自適應,以及更多場景的Mock支持。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RPC
    RPC
    +關注

    關注

    0

    文章

    111

    瀏覽量

    11826
  • HTTP協議
    +關注

    關注

    0

    文章

    67

    瀏覽量

    10119

原文標題:基于出行領域全場景的mock提效探索與實踐

文章出處:【微信號:軟件質量報道,微信公眾號:軟件質量報道】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    RFID方案與傳統條碼方案對比:哪種更適合你的工廠出入庫管理?

    展開對比,為企業選擇最優方案提供參考。一、技術原理與核心差異傳統條碼方案依賴光學掃描技術,通過激光或攝像頭識別條形碼或二維碼,需人工逐個對準掃描。而RFID方案采
    的頭像 發表于 06-05 14:55 ?169次閱讀
    RFID方案與<b class='flag-5'>傳統</b>條碼方案<b class='flag-5'>對比</b>:哪種更適合你的工廠出入庫管理?

    弧光保護裝置與傳統過流保護的差異

    弧光保護裝置與傳統過流保護的差異: 對比項弧光保護裝置傳統過流保護 檢測對象電弧光+電流突變僅電流幅值 動作時間5-15ms 1100ms-2s 適用場景開關柜內部短路線路過載/遠端短路 抗干擾能力多判據融合,誤動率低易受電機啟
    發表于 05-07 09:59

    新型高精度融合定位電子工牌與傳統電子工牌對比

    新型高精度融合定位電子工牌與傳統電子工牌對比,我們從以下幾個方面介紹下對比性。1、定位功能傳統電子工牌只支持普通的GPS+北斗定位功能;新型電子工牌可以采用高精度RTK+UWB+藍牙定
    的頭像 發表于 03-13 16:42 ?384次閱讀
    新型高精度融合定位電子工牌與<b class='flag-5'>傳統</b>電子工牌<b class='flag-5'>對比</b>

    FDD與傳統通信技術的對比

    FDD(Frequency Division Duplex,頻分雙工)是一種雙工通信技術,它與傳統通信技術的對比主要體現在雙工方式、頻譜利用、系統復雜度、應用場景及性能特點等方面。以下是對這些方面
    的頭像 發表于 01-07 16:43 ?552次閱讀

    智能密集架控制系統與傳統系統對比

    智能密集架控制系統與傳統系統相比,在多個方面展現出顯著的優勢。以下是對兩者之間的對比: 一、存儲效率與空間利用 智能密集架 : 設計緊湊,能夠在有限的空間內最大化存儲量。 通過智能控制系統,可以精確
    的頭像 發表于 12-06 10:13 ?700次閱讀

    POE供電與傳統供電對比 POE供電技術原理解析

    POE供電與傳統供電對比 POE(Power over Ethernet)供電技術與傳統供電方式在多個方面存在顯著差異。以下是對這兩種供電方式的詳細對比: POE供電
    的頭像 發表于 12-04 09:53 ?1667次閱讀

    激光焊縫跟蹤器與傳統焊縫檢測方法的對比

    在焊接自動化的推動下,焊縫檢測技術逐漸成為焊接質量控制的重要環節。傳統的焊縫檢測方法在一定程度上滿足了生產需求,但隨著工業應用對精度和效率要求的提升,激光焊縫跟蹤器逐漸成為一種更具競爭力的解決方案。今天一起了解激光焊縫跟蹤器與傳統焊縫檢測方法的
    的頭像 發表于 11-28 16:47 ?545次閱讀
    激光焊縫跟蹤器與<b class='flag-5'>傳統</b>焊縫檢測方法的<b class='flag-5'>對比</b>

    迅為RK3568開發板傳統分區和定制擴展分區鏡像對比

    根據上面兩個小節的內容,可以將 rk 傳統分區和定制擴展分區的特性進行一下對比,整理好的表格如下所示: rk 傳統分區 鏡像特性概述: (1)固定設備樹綁定:每個鏡像只能適配特定的硬件配置,無法
    發表于 11-19 10:50

    SSR與傳統服務器的對比分析

    的服務模式,與傳統服務器相比,有著獨特的優勢和挑戰。 1. 定義與架構 傳統服務器 :傳統服務器是指物理或虛擬的計算資源,用戶需要自行管理操作系統、應用程序以及運行環境。用戶需要負責服務器的維護、升級和擴展。 SSR :SSR是
    的頭像 發表于 11-18 11:22 ?902次閱讀

    光伏電站運維管理系統與傳統運維模式對比分析

    ?????? 光伏電站運維管理系統與傳統運維模式對比分析 ?????? 隨著全球對可再生能源的關注度不斷提升,光伏電站作為綠色能源的重要組成部分,其運維管理顯得尤為重要。傳統的運維模式已逐漸無法滿足
    的頭像 發表于 11-08 16:14 ?769次閱讀
    光伏電站運維管理系統與<b class='flag-5'>傳統</b>運維模式<b class='flag-5'>對比</b>分析

    無人機智能巡檢系統與傳統巡檢方式的對比

    無人機智能巡檢系統與傳統巡檢方式的對比 在當今科技飛速發展的時代,無人機智能巡檢系統已經逐漸成為現代工業領域的一大創新。相較于傳統巡檢方式,無人機智能巡檢系統展現出了一系列顯著的優勢和特點。 1
    的頭像 發表于 09-26 17:34 ?1385次閱讀
    無人機智能巡檢系統與<b class='flag-5'>傳統</b>巡檢方式的<b class='flag-5'>對比</b>

    對比分析點焊機與傳統焊接方法

    在焊接技術的演進歷程中,點焊機憑借其高效、精確與自動化的特性,在現代工業制造中迅速崛起,成為現代工業制造中的重要工具。相較于歷史悠久的傳統焊接方式,點焊機展現了諸多獨特優勢。以下我們將從點焊機的工作原理、優缺點及應用領域三大維度,對兩者進行細致入微的對比分析。
    的頭像 發表于 09-12 11:52 ?1122次閱讀

    傳統園區與智慧園區的對比及優勢

    在當今數字化快速發展的時代,傳統園區管理方式已經逐漸顯露出一些不足之處,而智慧園區管理系統的建設則為管理者提供了全新的解決方案。古河云科技通過對傳統園區和 智慧園區 管理系統進行對比分析,可以清晰
    的頭像 發表于 08-09 14:43 ?610次閱讀

    深度學習與傳統機器學習的對比

    在人工智能的浪潮中,機器學習和深度學習無疑是兩大核心驅動力。它們各自以其獨特的方式推動著技術的進步,為眾多領域帶來了革命性的變化。然而,盡管它們都屬于機器學習的范疇,但深度學習和傳統機器學習在方法、應用、優勢等方面卻存在顯著的差異。本文將對這兩者進行深入的對比和分析。
    的頭像 發表于 07-01 11:40 ?2324次閱讀

    固態繼電器與傳統繼電器的對比

    在電力系統和工業自動化中,繼電器作為一種重要的電氣控制元件,承擔著電路通斷、轉換和保護等重要任務。隨著科技的進步,固態繼電器作為一種新型的無觸點開關器件,逐漸在各個領域得到廣泛應用。本文將對固態繼電器與傳統繼電器在結構、工作方式、工作環境適應性等方面進行對比研究,以期為讀
    的頭像 發表于 06-26 17:26 ?1688次閱讀
    主站蜘蛛池模板: 大香线蕉97久久 | 男生脱美女内裤内衣动态图 | 理论片毛片 | 国产伦精品一区二区 | 国产无遮挡床戏视频免费 | 免费在线看视频 | 性夜影院爽黄a爽免费视频 性瘾高h姚蕊全文免费阅读 | 精品国产第一页 | 国产高清网站 | 日本毛片大全 | 亚洲插 | 国产3p在线播放 | 九九99久久精品午夜剧场免费 | 国产在线欧美精品卡通动漫 | 天天干国产 | 四虎影院最新网站 | 一区二区三区精品视频 | 亚州黄色网址 | 97理论片| 年下攻高h好涨 | 色五月丁香五月综合五月 | 亚洲bt天堂 | 国产天天色 | 欧美大色网 | 亚洲日本一区二区三区在线不卡 | 成人av在线电影 | h国产 | 国产巨大bbbb天美 | 免费免费啪视频在线 | 国产精品欧美一区二区 | 国内精品久久久久影院免费 | 黄视频网站免费 | 一区二区三区四区视频在线观看 | 中文字幕一区精品欧美 | 年轻的护士3在线观看 | re99热| 69视屏| 国产精品久久久久久免费播放 | 日本色网址 | 免费大片a一级一级 | 天堂免费在线视频 |