精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

vivo 前端三劍客發展歷程及原理揭秘

開發 前端
異地協作模式,給開發和測試間的問題溝通及定位帶來了諸多挑戰。本文從前端開發視角出發, 闡述在這過程中遇到的痛點,探索解決的思路,并在過程中成功孵化出技術工具“前端三劍客”,文章深入解析了“前端三劍客”技術的實現原理及應用場景。

01、背景

隨著公司業務的不斷發展,異地協作成為一種常態,距離無疑給我們的溝通帶來了很多不便,尤其是給問題反饋及解決增加了更多的成本,在這過程中我們遇到了很多痛點

痛點一:溝通效率低

開發和測試只能通過消息或者電話進行溝通,為了將問題描述清晰,雙方需要反復交流,有時還需提供錄屏、截圖以及抓包等信息,整個過程耗時長、效率低。

痛點二:復現難、定位難

經常會出現一些問題,開發在本地無法復現,需要使用特定的手機進行復現、解決。

痛點三:抓包協作難

分析問題時,經常需要抓包,但是目前主流的抓包工具都是1對1,對于異地實時抓包不是很方便,而且分享抓包內容也比較繁瑣,無法在線實時查看。

為解決這些問題,我們基于開源工具與自研技術棧,孵化出前端三劍客

  • 利劍一:錄制回放工具 - 讓溝通更簡單
  • 利劍二:遠程調試工具 - 像本地調試一樣調試遠程機器
  • 利劍三:WEB多人抓包代理工具 - 在線抓包,更簡單、更實時、更便捷

這是一套覆蓋問題復現、遠程調試、便捷抓包的一整套解決方案,助力開發人員快速、精準地分享解決問題。

02、利劍一:錄制回放工具

2.1 工具介紹

對于前端開發而言,和測試溝通問題時,問的最多的幾個問題:

  • 你是怎么操作的?
  • 控制臺有什么報錯嗎?
  • 抓個包給我看下接口請求數據吧?

總結歸納起來就是以下三點:

基于以上的述求,我們基于開源框架rrweb,實現了從前臺接入管理、后臺回放管理及權限管控的一站式錄制回放平臺,接入簡單,一鍵便可錄制宿主信息、操作過程、接口信息、日志信息等數據。

錄制過程

接入錄制回放工具后,頁面會出現一個懸浮球,用于開啟和提交錄制信息,錄制完成后,會生成在線回放地址。錄制過程如下圖所示:

回放過程

錄制成功后,后臺管理系統中便能查詢到該條錄制信息,點擊回放,可以看到該問題的操作過程,以及瀏覽器信息、接口信息、日志信息等數據,如下圖所示:

整個操作的流程如下圖:

2.2 接入方式

我們提供了一個在線sdk,用戶只需引入該js文件,進行初始化即可使用:

2.3 實現原理

記錄頁面 DOM 變化

錄制過程:

在初始化時使用document.cloneNode(true) 方獲取頁面的全量 DOM 快照,之后通過 Mutation- Observer 監聽器監控頁面的各種變化,如 DOM 的增刪改、鼠標移動、滾動以及頁面大小調整等,當這些變化發生時,會將變化信息序列化為 JSON 格式的數據并存儲起來。

回放過程:讀取記錄的 JSON 數據,解析出頁面的初始快照以及各個操作事件的時間序列,根據初始快照重建頁面的 DOM 樹,然后按照事件的時間順序逐步應用每個操作事件。

接口錄制

通過對全局XMLHttpRequest進行重寫進行接口的攔截處理。

日志錄制

通過對全局console.log進行重寫。

2.4 遇到的問題

問題1:跨頁面錄制

我們是通過在index.html中引入sdk,對于單頁應用,切換路由時,錄制可以連貫的銜接上,但是當遇到多頁面的應用時,切換頁面,會重新加載sdk,這樣數據就會丟失,無法進行銜接,所以我們需要在切換頁面時將錄制數據存在本地,進入下一個頁面時,獲取這些數據進行合并,如下圖:

問題2:iframe頁面無法錄制

對于很多后臺的項目,可能存在很多iframe嵌入的子項目,如果iframe中的內容與父頁面不在同一個域下,為了能夠正常錄制iframe中的內容,需要進行跨域處理,在iframe的頁面中也嵌入sdk,并設置相應的跨域屬性,記錄數據,并通過iframe.content-Window.postMessage來同步數據到主頁面中。

03、利劍二:遠程調試工具

3.1 工具介紹

遠程調試工具是基于開源工具chii進行二次封裝,相較于vConsole,chii讓跨設備、跨網絡的Web應用調試變得簡單便捷。通過遠程連接的方式,像本地數據線連接手機一樣,在本地的chrome Devtools中進行問題定位,實現和在chrome://inspect中一樣的設備調試效果。遠程調試工具很好的解決了開發因為本地無法復現,需要測試同學手上特定機器才能復現的問題,同時可以在遠程看到頁面實時運行的日志、接口等信息,大大提升問題定位效率。

下面是整個操作步驟:

第一步:如下圖,點擊頁面中的懸浮球,出現遠程調試按鈕,點擊可以開啟遠程調試。

第二步:在管理平臺的遠程列表中可以看到所有連接的設備。

第三步:遠程查看,點擊上一步驟中的inspect按鈕,可以進入如下調試頁面。

第四步:雙向操作同步

在手機執行操作,遠程界面同步發生變化,實時顯示請求和日志,同樣如果遠程修改樣式或者執行操作,手機端也會同步執行相同操作。

3.2 接入方式

3.3 實現原理

遠程調試工具主要包括三個部分:客戶端,中轉服務,遠程調試端(devtools)。

它們的運轉模式如下圖:

第一步:啟動一個node服務作為中轉服務器,然后創建webSocket服務用來連接客戶端和遠程調試端。

第二步:在客戶端需要調試的網頁中注入target.js 腳本,該腳本會創建 WebSocket 連接,通過訂閱發布來監聽DOM、Log、Network、Css、Storage、Debug等相關操作指令。

第三步:遠程調試界面通過CDP(Chrome DevTools Protocol)協議來和服務進行通信,當執行控制模板某項操作時,比如點擊DevTools中的“Elements”面板來檢查頁面元素,DevTools會通過CDP向服務發送一個命令,請求DOM樹信息,服務接收到這個命令后,通過渲染進程查詢具體的DOM信息,并將結果返回給DevTools,DevTools前端再將這些信息可視化呈現給開發者。

04、利劍三:WEB多人抓包代理工具

4.1 工具介紹

工作中經常需要抓包、代理等操作,主流的抓包工具有:Charles、Fiddler等,這些工具都必須安裝客戶端,且都是1對1的,對多人協助不是很友好。比如:開發需要獲取測試同學的的抓包信息分析問題時,目前都是測試同學把報文導出來,發給開發,開發再去導入到工具里面進行分析。

在此背景下,我們就在思考,能否實現一個在線的抓包、代理平臺,讓大家使用方便、分享方便,降低門檻。于是就有了這款工具的誕生,工具是基于mitmproxy進行了二次開發,容器化部署了一套在線代理服務,只需通過瀏覽器就能實現抓包、代理等操作。

該在線抓包工具具備如下優勢

  • 簡單: 無需安裝客戶端,有瀏覽器就能使用,易上手。
  • 方便: 直接在瀏覽器中進行抓包,而且可通過鏈接分享給他人。
  • 易用: 支持斷點、修改報文,集成了錄制回放工具、遠程調試工具,且支持開發、測試、線上環境任意切換。

4.2 使用簡介

設置代理

用戶可以通過手機安裝的App掃描頁面上二維碼,建立連接,也可以直接在手機WIFI代理設置中輸入固定的代理IP和端口號。

抓包、代理

代理成功后,自動跳轉到抓包頁面,頁面中會顯示當前設備,也支持新增設備,可以同時對多個設備進行抓包、代理。并且支持對報文的篡改及環境的代理。

工具注入

我們還在抓包工具中集成了上面的錄制回放工具和遠程調試工具,只需要打開開關,便會去識別入口html,動態注入工具的sdk,并進行初始化,這樣用戶再次刷新頁面時,頁面中便會出現工具的懸浮球。

環境切換

工作中還涉及到一個場景,在產品和UI驗收時,由于驗收環境都是在測試環境,需要配置host,對于產品和UI同學來講,環境的配置其實是比較陌生的,為了方便驗收,我們提供了一鍵切換環境的能力。用戶只需要在頁面上選擇自己的項目,然后開啟對應的環境,這樣手機環境便能切換過來。

4.3 實現原理

在mitmproxy基礎上,根據設備ip對攔截的請求進行分類,當用戶查看抓包數據時,通過ip進行過濾,這樣就可以只看到自己ip的抓包數據。

4.4 問題解決

4.4.1 如何實現1對N

既然是在線抓包服務,那每個人肯定都是獨立的,不能相互影響,如何讓1個代理服務支持多人操作就成了問題。

解決方案:

  • 用戶連接代理后,代理服務器可以獲取到用戶的IP地址,根據IP地址分別進行分發及報文存儲。
  • 前臺查詢時,終端ip地址作為入參,便只會查詢當前ip相關的抓包信息。
  • 前臺修改報文、環境等信息時,代理服務器會根據ip分別存儲修改后的信息。

4.4.2 性能問題

多人在線抓包時,報文數據量非常大,幾十萬甚至上百萬條,而且單條報文數據量也非常的大,包括:請求頭、響應頭、響應內容等等,所以如何快速查詢及展示就成了問題。

解決方案:

  • 采用虛擬滾動列表,提升頁面流暢性。
  • 優化報文結構,列表只返回固定的幾個字段,等點擊時再去查詢報文詳情。
  • 優化后,即使上萬條報文也能很快返回,用戶操作也不會卡頓。
// 報文結構
[{
    "id": "ccae12b0-a4f9-4379-98df-03360b6a3912",
    "s": 200,
    "m": "POST",
    "u": "https://bbs.vivo.com.cn/",
    "z": 649,
    "b": 1742888674.46417,
    "e": 1742888674.51759
  },
  ...
]

05、總結

整體回顧下,本文主要介紹了開發同學在項目中遇到的問題定位、溝通等痛點,通過對痛點的拆解和思考,孵化出三個在前端項目中提升效率的工具:

  • 錄制回放:精準還原問題出現的場景,提供分析問題所需的必要數據(環境、日志、抓包、操作過程等),提升解決問題的效率。
  • 遠程調試:遠程直連真機進行調試,快速解決特定機型的問題。
  • 多人抓包:讓抓包變的更加便捷,在線即可完成,極大地提高了團隊在抓包調試工作中的協作效率。
責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2011-03-28 16:04:44

nagios

2009-02-12 09:12:27

JPAEJBJSF

2010-02-04 16:22:21

2019-06-27 10:06:54

Linux 性能工具

2019-08-20 14:29:45

grepsedawk

2021-05-13 10:25:29

Linuxgrep命令

2023-10-04 00:20:31

grepLinux

2009-02-26 18:22:49

桌面虛擬化Linux

2024-06-04 00:20:00

Python函數

2017-07-25 08:53:14

CorrectLinkCCA-SD算法

2014-12-29 22:45:38

2011-08-06 23:58:34

愛普生投影機

2011-07-04 09:07:54

2011-04-11 11:01:03

AndroidHTC蘋果

2023-11-25 17:08:47

ChatbotLLAMALangChain

2009-03-19 20:52:58

LinuxPHPCMS

2025-04-22 09:39:46

Python爬蟲網頁數據抓取

2014-11-26 10:18:32

Cloud Setupwindows在線打包工具

2018-05-04 15:18:01

DockerDocker Comp容器

2021-03-15 07:39:48

LinuxAwk 語言
點贊
收藏

51CTO技術棧公眾號

99中文字幕一区| 69成人免费视频| 9.1麻豆精品| 亚洲蜜臀av乱码久久精品| 国产伦视频一区二区三区| 美日韩一二三区| 久久中文字幕av一区二区不卡| 6080日韩午夜伦伦午夜伦| 屁屁影院ccyy国产第一页| 青青久在线视频| 国产一区二三区| 国产69精品久久久久久| 日本裸体美女视频| 亚洲动漫在线观看| 日韩一级片在线播放| 男人天堂999| 91国内在线| 国产午夜亚洲精品理论片色戒| 91在线免费看网站| 不卡av电影在线| 激情综合久久| 中文字幕日韩在线视频| 中文字幕精品久久久| 9999精品| 欧美吞精做爰啪啪高潮| 亚洲国产精品无码av| 黄视频在线观看网站| 久久亚洲免费视频| 国产精品手机视频| 成 人片 黄 色 大 片| 蜜臀va亚洲va欧美va天堂| 97精品一区二区三区| 成人在线观看高清| 日韩免费高清| 亚洲石原莉奈一区二区在线观看| 国产在线不卡av| 亚洲精品一区国产| 制服丝袜亚洲网站| 亚欧美在线观看| 日韩欧美精品电影| 色婷婷亚洲综合| 日韩欧美精品在线观看视频| 黄色在线看片| 一区二区三区.www| 男人天堂成人网| 天天影视久久综合| 国产精品视频线看| 日韩一区不卡| av中文字幕在线| 久久九九久久九九| 区一区二区三区中文字幕| 午夜福利理论片在线观看| 成人av电影免费在线播放| 成人午夜电影免费在线观看| 99产精品成人啪免费网站| 韩国精品在线观看| 91香蕉亚洲精品| av中文字幕免费在线观看| 国内精品免费在线观看| 97在线电影| 亚洲国产999| 成人精品一区二区三区中文字幕| av一本久道久久波多野结衣| 成人无码一区二区三区| 99re这里都是精品| 久久久人人爽| 国产在线一二三| 日本一区二区三区免费乱视频 | 美脚丝袜脚交一区二区| heyzo高清中文字幕在线| 午夜视频一区二区三区| 日本免费不卡一区二区| 美女18一级毛片一品久道久久综合| 欧美日韩在线影院| 亚欧在线免费观看| 亚洲国产一区二区久久| 欧美一区二区精品在线| 日本少妇一级片| 香蕉久久精品| 日韩在线观看免费全| 中文字幕av免费在线观看| 黄色在线一区| 国产成人精品免高潮在线观看| 亚洲一区二区影视| 国产成人精品亚洲777人妖| 久久99精品久久久久久三级| 精品一二三区视频| 亚洲视频 欧洲视频| 成人性免费视频| 欧美日韩电影免费看| 制服丝袜亚洲精品中文字幕| 少妇户外露出[11p]| 日韩精品久久| 性视频1819p久久| 一区二区三区免费观看视频| 成人性生交大片免费| 日本中文不卡| 国产乱码在线| 欧美日韩国产系列| 成人影视免费观看| 亚洲精品网址| 国产99在线|中文| 国产激情久久久久久熟女老人av| 久久影院视频免费| 97超碰在线视| jizz亚洲女人高潮大叫| 精品国产精品网麻豆系列| 青青草自拍偷拍| 国产亚洲精品v| 91九色在线观看| 国产三级电影在线观看| 亚洲电影在线播放| 国产高清999| 精品国产欧美日韩| 2025国产精品视频| www.国产.com| 亚洲欧洲日本在线| 日本xxxxxxx免费视频| 国内精品国产成人国产三级粉色 | 日本成人三级电影网站| 在线xxxx| 777xxx欧美| 日本免费www| 午夜亚洲伦理| 国产一区二区黄色| 污视频免费在线观看| 欧美三级乱人伦电影| 中日韩精品一区二区三区| 国产尤物精品| 97免费高清电视剧观看| 男人影院在线观看| 欧洲日韩一区二区三区| 中文字幕5566| 欧美亚洲一区| 精品无人乱码一区二区三区的优势| a视频在线免费看| 欧美日韩另类一区| 奇米网一区二区| 免费在线观看视频一区| 三区精品视频观看| 欧美一级大黄| 一本久久综合亚洲鲁鲁| 在线观看亚洲黄色| 欧美国产一区视频在线观看| 免费日韩中文字幕| 精品久久一区| 国产精品一区二区三区久久久| 国产69精品久久app免费版| 欧美性猛交99久久久久99按摩| 日本国产在线视频| 亚洲精选在线| 欧美区高清在线| 欧美极品影院| 中文字幕亚洲图片| 国产伦子伦对白视频| 综合在线观看色| 青青草精品在线| 极品av少妇一区二区| 国产经品一区二区| 热三久草你在线| 亚洲人成在线观看网站高清| 波多野结衣电车| 国产精品久久夜| 国产精品久久久久久9999| 欧美黄色aaaa| 久久av一区二区三区亚洲| 成人免费看视频网站| 在线一区二区日韩| aaa一区二区| 五月天欧美精品| 一级片视频免费看| 极品美女销魂一区二区三区| 国产精品igao激情视频| 日本欧美高清| 国产精品旅馆在线| 1769免费视频在线观看| 日韩禁在线播放| 最新在线中文字幕| 夜夜精品浪潮av一区二区三区| 中文成人无字幕乱码精品区| 玖玖国产精品视频| 300部国产真实乱| 五月激激激综合网色播| 国产免费亚洲高清| 国产美女情趣调教h一区二区| 亚洲精品中文字幕av| 国产又粗又猛视频| 精品久久香蕉国产线看观看gif| 中文字幕成人动漫| 国产99久久久国产精品潘金| av免费在线播放网站| 亚洲午夜精品一区 二区 三区| 国产精品久久久一区二区三区| 日本精品不卡| 欧美激情xxxx性bbbb| h视频在线免费| 精品91自产拍在线观看一区| 亚洲婷婷久久综合| 亚洲国产欧美一区二区三区丁香婷| 国产高潮呻吟久久| 丁香婷婷深情五月亚洲| 成人性做爰aaa片免费看不忠| 中文字幕免费一区二区| 欧美日韩国产三区| 岛国精品一区| 91亚洲精品在线观看| 88xx成人免费观看视频库| 欧美黄色免费网站| 日本三级在线播放完整版| 精品夜色国产国偷在线| www黄色在线观看| 欧美性色欧美a在线播放| 国产无码精品在线播放| 1024亚洲合集| 奇米网一区二区| 久久久久久久电影| 色婷婷精品久久二区二区密| 国产一区二区精品久久| 美女网站色免费| 亚洲专区免费| 成人免费性视频| 欧美精品大片| 桥本有菜av在线| 成人一区二区| 日本一区免费在线观看| 伊人春色精品| 好吊色欧美一区二区三区视频| 日韩成人精品| 亚洲一区二区免费在线| 欧美美女福利视频| 国产精品久久久久久婷婷天堂| 第一福利在线视频| 久久青草福利网站| 国产蜜臀在线| 性欧美亚洲xxxx乳在线观看| 丰满大乳少妇在线观看网站| 九九热这里只有精品免费看| 99自拍视频在线观看| 久久手机免费视频| 最爽无遮挡行房视频在线| 久久精品国产亚洲一区二区| 1024国产在线| 久久综合网hezyo| 男人和女人做事情在线视频网站免费观看 | 亚洲永久精品唐人导航网址| 精品久久久久久亚洲| 日本在线中文字幕一区| 精品久久久久久一区| 五月综合久久| 欧洲亚洲一区| 日韩精品诱惑一区?区三区| 亚洲一区高清| 66久久国产| 国产一区二区三区乱码| 一区在线视频观看| 可以在线看的av网站| 亚洲一区二区免费看| www黄色av| 欧美bbbbb| 992kp免费看片| 成人免费观看av| www.自拍偷拍| 国产精品久久久久久久久快鸭 | 中出一区二区| 日本一区午夜艳熟免费| 美女网站久久| 亚洲性图一区二区| 国产成人福利片| 国产男女猛烈无遮挡a片漫画 | 亚洲一卡二卡区| 国产精品91一区二区三区| 欧美三级午夜理伦三级老人| 亚洲精品系列| 亚洲不卡视频在线| 激情文学综合插| 香港三日本8a三级少妇三级99| 久久久无码精品亚洲日韩按摩| 谁有免费的黄色网址| 亚洲免费伊人电影| 中文字幕亚洲精品一区| 欧美日韩一区二区在线观看视频 | 成人精品高清在线| 91精彩刺激对白露脸偷拍| 国产精品亲子伦对白| 高h视频免费观看| 欧美性xxxx在线播放| 国产精品色综合| 国产视频在线观看一区二区| 激情影院在线观看| 欧美在线激情视频| 国产午夜精品一区在线观看 | 午夜精品视频一区二区三区在线看| 4444亚洲人成无码网在线观看| 亚洲欧美视频| 99久久综合网| 国产亚洲精品精华液| 欧美一区二区三区爽爽爽| 日韩欧美在线播放| 国内精品偷拍视频| 一区二区福利视频| 免费男女羞羞的视频网站在线观看| 日产精品99久久久久久| 亚洲综合影院| 一区二区不卡在线观看| 鲁大师影院一区二区三区| avtt中文字幕| 国产精品传媒在线| 成年人av网站| 亚洲精品国产精品国产自| av文字幕在线观看| 国产精品第3页| 日韩大尺度在线观看| 4444在线观看| 免费不卡在线视频| 国产男男chinese网站| 午夜精品在线视频一区| 国产强伦人妻毛片| 色悠悠国产精品| 日韩av首页| 欧美裸体网站| 久久成人亚洲| 给我看免费高清在线观看| 亚洲一区在线观看视频| 国产乱淫a∨片免费视频| 中文字幕欧美日韩va免费视频| 亚洲国产欧美日本视频| 国产v亚洲v天堂无码| 女人香蕉久久**毛片精品| www.成人黄色| 国产精品久久久久影院亚瑟| 日韩黄色片网站| 亚洲欧洲美洲在线综合| 26uuu亚洲电影| 欧美性xxxx69| 久久精品一区| 日韩中文字幕有码| 色欧美片视频在线观看在线视频| 天堂资源最新在线| 91av在线精品| 最近国产精品视频| 黄色影院一级片| 久久免费偷拍视频| 一级黄色在线视频| 国产性色av一区二区| 免费欧美电影| 亚洲资源视频| 国产一区啦啦啦在线观看| 免费在线黄色网| 精品国产91九色蝌蚪| 国产在线精彩视频| 欧美成人dvd在线视频| 三级一区在线视频先锋| 公肉吊粗大爽色翁浪妇视频| 欧美日韩三级一区二区| 日本激情视频在线观看| 亚洲精品欧美日韩| 精品福利电影| 亚洲一区二区三区蜜桃| 欧美色综合天天久久综合精品| 福利片在线观看| 成人淫片在线看| 激情综合亚洲| 中文字幕 自拍| 91麻豆精品久久久久蜜臀| 亚洲卡一卡二| 久久久久天天天天| 麻豆久久一区二区| 久草视频免费在线播放| 日韩精品在线免费观看| 在线一区视频观看| 日韩人妻一区二区三区蜜桃视频| 懂色av中文字幕一区二区三区| www.日本精品| 色综合亚洲精品激情狠狠| 午夜精品在线| 97在线免费公开视频| 中文字幕一区二区不卡 | 成人美女视频在线看| 国产免费av一区| 久久精品国产96久久久香蕉| 国产精品zjzjzj在线观看| 性生交免费视频| 一区二区三区日本| 免费在线看v| 亚洲a区在线视频| 每日更新成人在线视频| 顶臀精品视频www| 亚洲女人被黑人巨大进入| 高清不卡一区| 日本中文字幕片| 一区二区三区四区蜜桃| 国产女人在线观看| www国产亚洲精品| 免费高清视频精品| 欧美不卡视频在线观看| 中文字幕亚洲二区| 美女主播精品视频一二三四| 亚洲欧美天堂在线| 色综合咪咪久久| 国产亚av手机在线观看|