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