《原生技術&內核 - 5 - 義侖 - 在線化的前端自動化引擎EXIA [自動保存].pdf》由會員分享,可在線閱讀,更多相關《原生技術&內核 - 5 - 義侖 - 在線化的前端自動化引擎EXIA [自動保存].pdf(30頁珍藏版)》請在三個皮匠報告上搜索。
1、謝儀倫(義侖)在線化的前端動化引擎EXIA百靈證技術的利器目錄01為什么做前端自動化引擎02EXIA關鍵技術實現03工程能力建設04總結百靈自證業務是什么用戶如何自證合規保障百靈自證三大關鍵技術 其一是自動化引擎 與業界方案對比自動化執行的原理在線化、多語言的實現錄制回放技術技術指標的可視化大盤執行報告首頁&Playground快!在線化!穩!始于自證,走向未來全端自動化引擎01 為什么做前端自動化引擎EXIA百靈自證是什么社會視角:開證明是個社會性的問題流證明資產證明收證明稅收證明搖號驗資開證明很麻煩但是消費卻法驗真看似很可笑的循環,卻是普遍存在的現狀我要怎么證明我是我?我知道你很難,但我根
2、本不知道真假!我不知道你的信息我不知道你的信息所以需要開證明所以需要開證明不管紙質證明多權威不管紙質證明多權威我根本不知道真假我根本不知道真假百靈自證是什么業務視角:數據燃料是信貸業務增長的關鍵2016201720182019202020212022網商銀行的三級增長火箭網商銀行的三級增長火箭一級火箭:-2018核心數據:體系內底盤數據二級火箭:2018-核心數據:可合作機構數據三級火箭:2020-核心數據:外部封閉生態數據百靈自證是什么打破與外部封閉生態之間的數據孤島百靈證技術,就是從戶側解決信息孤島問題戶可以在線獲取量有的數據數據的消費可以驗證數據的真實性官方APP流水賬單數據消費方資產證
3、明收入證明經營數據官方網站官方郵件信用授信認證資格能力評估用戶授權用戶自己來證明自己用戶如何自證-關鍵挑戰手機上復雜的步驟引導告訴用戶如何通過PC瀏覽器獲取數據轉化極低1太復雜用戶自己去找PC電腦不熟悉稅務網站漏損極高2授權后回到支付寶流程割裂3稅務授權提額房產證明提額多模態分析政策模型提額拍房產證上傳不可信風控攔截P圖造假難以識別只能當作運營活動用戶如何自證-解決方案連接核身&授權結果自動化自動化用戶僅需在自己的手機上花幾秒鐘完成核身和授權剩下的事情交給云桌面自動化自動化完成方便快捷方便快捷 轉化率高轉化率高專用云桌面,用后即焚隱私安全隱私安全 數據可信數據可信百靈自證的合規保障 不接觸賬密
4、 用后即焚 主動提交多方授權隱私安全技術陽光用戶網商銀行第三方平臺ISV 類似新手引導工具 非注入、非爬蟲 無入侵、無破壞 充分授權 通過用戶 通過ISV百靈自證三大關鍵技術數據樞紐技術自證任務調度中心可信容器技術四層可信防御體系自動化引擎技術在線化!快!穩!02 EXIA關鍵技術實現現有的自動化測試框架不滿足要求CDP流Node.js SocketCDP組裝Web SocketCDP協議JS注入流Electron/Node.js網絡過濾事件監聽JS 注入SeleniumWeb DriverWeb DriverWeb DriverWeb DriverHttp Server命令解析/多語言Web
5、DriverWire ProtocolPlaywrightWeb SocketCDP協議WRDP協議Pipe/IO命令解析/多語言協議組裝斷言邏輯JSONProtocol 多語言 多瀏覽器 遠程和分布式u速度慢u部署復雜 速度快u只支持JSu反爬被針對 多瀏覽器u速度適中u穩定性被犧牲 多語言 多瀏覽器u速度慢u只支持JSu不合規本地部署或對驅動版本的依賴導致無法快速響應,開發&變更成本高BS的架構以及斷言的設計更偏向對測試的支持犧牲了速度和穩定性在線化:解決速度與快速響應的問題多語言更廣的受眾,讓更多技術棧的開發者開箱即用本地運行環境Http Server命令轉換ChromeSocketPi
6、pe-remote-debugging-port=9222Page APage B-remote-allow-origins=xxWeb SocketBrowserJS RuntimeNode裁剪傳輸協議指令解析實例管理CDP參數控制模塊加載1.0.01.4.51.5.1exia-coreexia-web-component版本控制數據處理監控上報日志服務首頁容器PythonWebAssembly(Pyodide)JS引用表包加載器CPython解釋器類型轉換對象代理瀏覽器引擎JavaScriptJS內存JS代碼wasm代碼wasm內存%Python對象都在這里JsProxy對象PyProxy
7、對象JavaScriptCPython同步提供同步的Python API,讓腳本像命令一樣逐條執行,更容易被開發者理解sharedArrayBufferWorker語言可擴展WorkerPyodide Python-JS BridgePython RuntimeEXIA Python APIWASM主線程EXIAJS APIWorker通信主功能CDP通信.復合指令+錄制:解決穩定性與快速響應的問題復復合合指指令令touchfindclick成功失敗超時重試外部平臺賬號有限,無法覆蓋全部場景,上線后常有各種新頁面。傳統截圖可能錯過關鍵幀且沒有元素信息,不利于快速迭代修復。錄制解決了未知頁面的發
8、現和修復問題。保證業務的穩定性。腳本異常時,是誰的問題?是EXIA的錯還是對方頁面的不可用。通過錄制,還原現場,了解ECS上究竟發生了什么。在線化讓EXIA具備了快速響應的變更能力。錄制功能保證快速響應的發現和定位問題能力。錄制通過未知頁面告警發現問題,通過與文本日志相對應的可視化回放快速定位問題。錄錄制制保證了技術層面的穩定性業務的穩定性如何保證為了快速響應如何快速發現問題定位問題程序正常執行就真的成功了嗎錄制功能的方案預研方案預研HTML快照Frame錄制rrweb定時CDPpage.content()目標網頁引擎HTMLs開發成本低回放成本高丟幀定時CDPpage.screencastF
9、rame()目標網頁引擎PNGsffmpegMp4開發成本低網頁標簽狀態丟失丟幀回放成本低文件大目標網頁引擎JS 注入MutationObserver監聽DOM變化序列化全量快照json+增 量 快 照+rrweb-player開發成本低JS注入回放成本低文件小最終方案record.htmlEXIA APIrefresh刷新網頁open_url打開網頁switch_to切換頁面全量快照中心全量快照中心DOM.documentUpdatedDOM.getDocument共4個API通用處理器Path處理URL處理Security處理增量快照中心增量快照中心DOM.childNodeModifie
10、dDOM.childNodeInserted共7個API虛擬Dom樹構造器iFrame普通HTMLShadow DOM全量快照json+增 量 快 照+互斥鎖DOM變化CSS變化元素屬性增刪改DIFF構造器互斥鎖序列化rrweb event協議rrweb-player頁面加載成功主動監聽頁面變化被動CDPEXIA Record快照中心處理器序列化DOM樹隊列沒畫錄制功能的原理錄制效果效果指標20222426283032錄制性能對比開啟錄制關閉錄制性能大小房產腳本,錄制功能開啟與否各執行20次,平均耗時分別為27.415秒與26.995秒,開啟錄制增加0.42秒,考慮到腳本平均執行時間,這點性能
11、消耗可忽略。壓縮前1.5MB任務成功客戶平均執行時間3分54秒壓縮后275KB壓縮率80%房產提額為例exia-puppeteer-corechromePage AHttp Server 127.0.0.1:9222/json/version-remote-allow-origins=xxWeb Socket Server ws:/xxxxxxxxxxCDP首頁容器https:/ JS API復合指令原子指令通信指令錄制能力錄制能力安全偽裝CDP封裝指令解析異常處理實例管理Worker通信模塊synclink同步異步回歸模塊Page BPyodide Python-JS BridgeWorke
12、rWebAssemblyPython RuntimeEXIA Python API虛擬文件系統基礎庫自編譯庫sharedArrayBufferJS RuntimeWorker語言可擴展-remote-debugging-port=9222-enable-features=SharedArrayBuffer-user-data-dir=xx-disable-web-securityexia-core主線程CDPEXIA技術大圖03 工程能力建設可視化大盤,衡量EXIA的技術性能指令每日執行 9000w次成功率 99%平均耗時 100ms執行報告,洞悉單次的執行細節EXIA首頁EXIA Playg
13、round04 總結總結EXIA是前端自動化執行引擎,支持多語言能在瀏覽器上運行自動化腳本代碼完成頁面操作與數據處理凡是在網頁上的復雜操作,都可以考慮使用EXIA實現自動化降低人力成本,提高業務轉化率穩快在線化全端自動化引擎H5 KyriosAndroid DynamesWeb EXIA移動端移動端桌面端桌面端云桌面云桌面ConnectCore目標頁面JSPythonPythonRuntimeCDPSocketApp網頁頁面目標事件屏幕獲取動作執行Dockerfile云端部署調用任務處理VM1onMoveonTouch基于Thrift協議RPC本地多語言互調SofaBoot應用Python 3.8 runtime腳本解析生成指令RPC調用VM2邏輯處理MQTT雙向RPC調用Kyrios&Dynames終端云端引擎MQTT集中控制中心頁面轉譯雙端交互CloudPC Virtue輕量輕量群控群控多端聯動多端聯動在線化在線化快準穩快準穩打破壁壘打破壁壘多語言多語言多語言多語言期待家有所收獲