向 Fiddler 告别,拥抱 Fastest 吧!
說了再見,才發(fā)現(xiàn)再也見不到。—— 讓我們向曾經(jīng)偉大的Fiddler們揮手告別。
前言
國際慣例,我們從一個故事說起
忙人阿特最近在做一個新需求,作為高級工程師,寫代碼自然輕車熟路,很快就完成了開發(fā)。在提測之前,阿特像往常一樣喊來了產(chǎn)品和設(shè)計,準備進行產(chǎn)品體驗和設(shè)計走查。在體驗之前,因為代理配置和證書認證等等問題,阿特花了很長時間才幫產(chǎn)品和設(shè)計小姐姐弄好環(huán)境體驗,場面一度非常尷尬。
我們的日常工作中,常常要跟測試環(huán)境打交道,無論是開發(fā)、測試、體驗、走查等環(huán)節(jié),往往都需要在測試環(huán)境上開展。在過去,我們一般通過代理工具的方式訪問測試環(huán)境。而正如上面的故事所描述,代理工具的方式存在著諸多問題:
代理工具安裝配置繁瑣(特別是涉及https證書的時候)
代理規(guī)則不具備可復(fù)制性(每個人每次都要配一遍)
網(wǎng)絡(luò)受限(4G不能訪問測試環(huán)境等等)
不同應(yīng)用場景代理方式不一樣(小程序,RN等等)
為了解決這些問題,我們進行了一系列的探索和實踐,并提出了 Fastest 解決方案,實現(xiàn)了免代理訪問測試環(huán)境,并基于此提供了豐富的功能。
Fastest
Fastest 是一個免代理訪問測試環(huán)境的平臺,可以讓你不再需要代理工具就能訪問測試環(huán)境。除了免代理這個特點,其還具備全面多樣的代理轉(zhuǎn)發(fā)能力,簡潔的可視化管理平臺和多種場景兼容能力,并且在多重安全防護下,整個方案具有較好的安全性和可靠性。
Fastest 的基本原理是通過測試域名來實現(xiàn)測試環(huán)境免代理訪問,通過 Fastest 服務(wù)端部署的 Whistle 服務(wù)來完成轉(zhuǎn)發(fā)和抓包等核心功能。更多關(guān)于 Fastest 的具體原理和架構(gòu),在我們的fastest代理聯(lián)調(diào)平臺——技術(shù)架構(gòu)篇中有詳細的闡述。
實際使用效果多場景支持
隨著前端的不斷發(fā)展,前端的形態(tài)也不再僅僅局限于Web頁面,小程序、RN等前端載體層出不窮,但無論什么場景,訪問測試環(huán)境都是普遍的訴求。
正如前文所述, Fastest 的基本原理是通過測試域名來實現(xiàn)測試環(huán)境免代理訪問,所以我們只要將訪問的入口資源切換到測試域名即可,針對不同場景,Fastest 都提供了相應(yīng)的方式來完成接入。
Android/iOS
對于移動端頁面(Android/iOS),通過一個域名切換的SDK,可以將所有頁面的入口域名切換為 Fastest 測試域名,進而通過 Fastest 訪問到測試環(huán)境。
移動端場景小程序
Fastest為微信小程序和QQ小程序都提供了支持,在微信小程序上,Fastest 開發(fā)了 Fastestmp 小程序插件,通過插件的方式實現(xiàn)小程序中的cgi代理地址轉(zhuǎn)換。
在小程序中配置并引入 Fastestmp 插件后,即可通過 Fastest 訪問到測試環(huán)境。
除此之外,Fastest 也提供了 npm 包的方式,同時支持QQ小程序和微信小程序。
小程序場景H5
對于常規(guī)的H5頁面,還可以通過一個npm包fastest-loader來實現(xiàn)測試域名切換。
Hippy
Hippy是騰訊的一個跨平臺框架,在我們團隊中,Hippy多被應(yīng)用于手機QQ瀏覽器項目,在此類項目里,經(jīng)常會遇到安卓手機繞不開證書校驗,導致無法代理調(diào)試的問題。
而 Fasetest 方案可以很好的解決這個問題,輕松實現(xiàn)測試環(huán)境代理和調(diào)試。
Hippy場景抓包
抓包是各類代理工具的標配能力,那么使用了 Fastest 后,我們?nèi)绾芜M行抓包?
因為 Fastest 是通過部署在服務(wù)端的 Whistle 服務(wù)來實現(xiàn)代理轉(zhuǎn)發(fā)的,所以 Fastest 完整繼承了 Whistle 的抓包功能,并在此之上做了改進和擴展。
實時抓包
在 Whistle 實時抓包能力的基礎(chǔ)上,我們基于用戶標識和環(huán)境id過濾,可以為每個用戶提供獨立的實時抓包頁面。在實時抓包頁面上,完整展示與自己相關(guān)的所有請求,包括請求響應(yīng)的詳細信息及請求列表的Timeline,還有請求匹配到的規(guī)則等。
同時,在實時抓包頁面上可以實現(xiàn)抓包信息的導出,導出格式支持saz和txt,saz格式的抓包文件除了可以在抓包頁面打開展示,也可以在各類代理工具直接打開,非常方便。
實時抓包歷史抓包
有時我們在測試環(huán)境發(fā)現(xiàn)一些問題,但已經(jīng)錯過了實時抓包,如果這些問題不是必現(xiàn)的,那么復(fù)現(xiàn)就會成為一個難點。
Fastest 提供了歷史抓包的能力,在管理平臺上輸入時間范圍,即可查看指定時間范圍內(nèi)的歷史抓包信息,解決抓包回溯的痛點。
歷史抓包管理平臺
接入 Fastest 的業(yè)務(wù)都會按域名劃分應(yīng)用,在Fastest管理平臺可以對應(yīng)用進行配置和管理。
當然,跟使用代理工具的方式不同,每個人訪問測試環(huán)境都要進行進行很多前置的配置工作,在 Fastest 方案下,大部分 Fastest 的使用者并不需要關(guān)心應(yīng)用的具體配置,管理平臺上的配置可以為所有人服務(wù)。
管理平臺插件體系
Fastest 方案中,測試請求都會流入和流出 Fastest 服務(wù),在響應(yīng)返回前,通過向測試頁面注入代碼的方式,可以實現(xiàn)很多功能擴展,基于這個思路,我們搭建了一個插件機制。
以 Eruda 插件為例,在 Fastest 面板中,啟用 Eruda 插件可以為測試頁面啟用控制臺功能,方面在移動端直接查看和調(diào)試頁面信息。
插件體系安全
!Fastest方案目前已經(jīng)得到了公司級安全部門的認可!
值得注意的是,在 Fastest 方案下,我們可以跨越網(wǎng)絡(luò)環(huán)境的限制,在外網(wǎng)訪問到測試環(huán)境,考慮到測試環(huán)境的不穩(wěn)定性和安全性,我們需要對訪問測試環(huán)境進行限制和保護。
在安全方面,Fastest 從兩個方面進行保障。
安全接入層
對于接入層,我們與騰訊安全部門合作,將所有測試域名統(tǒng)一接入Sparta(業(yè)務(wù)接入層系統(tǒng)),由專業(yè)的 Sparta 來完成接入層的安全校驗。
同時,我們與安全部門保持合作,制定了短中長期合作計劃,定期Review整個系統(tǒng)的安全性,及時解決和修復(fù)可能存在的安全漏洞。
鑒權(quán)
Fastest提供了3個維度的鑒權(quán)方式,在訪問測試環(huán)境之前,都需要經(jīng)過身份認證,保證請求的合法性。
OA鑒權(quán)
白名單鑒權(quán)
Token鑒權(quán)
開啟OA鑒權(quán)后,需要經(jīng)過pin+token鑒權(quán)后才能訪問指定測試環(huán)境,這確保了訪問人員是公司內(nèi)部員工,這種相對嚴格的鑒權(quán)方式在80%的場景中都適用。
白名單鑒權(quán)下,只有管理員指定的用戶才能訪問指定測試環(huán)境,不在白名單內(nèi)的用戶無法訪問測試環(huán)境。
Token鑒權(quán)的方式則是管理員為測試環(huán)境設(shè)定一個Token,只有通過了這個Token認證的用戶才能訪問指定測試環(huán)境。
3個維度的鑒權(quán)方式,既保證了安全性,也具備足夠的靈活性。
如何接入
只需4步,即可接入 Fastest,感受免代理配置的快感!(目前僅在騰訊內(nèi)部開放,敬請期待~)
第一步: 創(chuàng)建項目
進入工作臺,點擊創(chuàng)建新項目,輸入應(yīng)用名稱,代理域名和原始域名,點擊提交即可創(chuàng)建成功。
創(chuàng)建項目第二步:創(chuàng)建測試環(huán)境
點擊左側(cè)側(cè)邊欄創(chuàng)建測試環(huán)境按鈕,輸入代理環(huán)境名稱和描述,點擊提交即可創(chuàng)建成功。
創(chuàng)建測試環(huán)境第三步: 新增規(guī)則
點擊新增規(guī)則按鈕,輸入匹配規(guī)則和測試環(huán)境,選擇狀態(tài)以及權(quán)重,點擊提交即可創(chuàng)建成功。
新增規(guī)則第四步: 訪問測試環(huán)境
在瀏覽器中輸入配置中所配置的地址,點擊齒輪進入選擇需要的測試環(huán)境即可。
訪問測試環(huán)境試一試
!!只是想試一試看看效果?!!
沒問題,我們提供了演示項目可以幫助您無需申請?zhí)厥庥蛎?#xff0c;即可體驗 Fastest 的效果,具體操作可以在Fastest管理平臺的試一試菜單中操作。
接入指引
試用效果很棒想要正式接入到您的業(yè)務(wù)?
Fastest 詳細的接入指引將幫助您一步一步完整地接入到 Fastest 中來。
哪些產(chǎn)品在用
目前 Fastest 已在PCG和IEG的多個產(chǎn)品中得到使用,對于代理測試的痛點,在不同BG和部門都是廣泛存在的。
哪些產(chǎn)品在用最后,歡迎向我們提意見和建議,對于如何提高測試代理效率這一痛點,也歡迎大家一起討論。
總結(jié)
以上是生活随笔為你收集整理的向 Fiddler 告别,拥抱 Fastest 吧!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「递归」第3集 | 向善的信念,让技术自
- 下一篇: Bing搜索核心技术BitFunnel原