Nohost 開源了
一個需求的研發(fā)需要經(jīng)歷開發(fā)聯(lián)調(diào)、產(chǎn)品體驗、測試驗證、發(fā)布部署這4個階段,在這個過程中,我們經(jīng)常會遇到下面這些問題:
1、環(huán)境沖突、代碼被覆蓋
隨著業(yè)務(wù)的發(fā)展,常常會有多個需求同時涉及開發(fā)一個項目的場景。由于測試服務(wù)器數(shù)量不夠,經(jīng)常會有環(huán)境沖突問題,甚至?xí)霈F(xiàn)環(huán)境被其他需求代碼覆蓋的情況。
2、切換環(huán)境成本高
多需求并行開發(fā)的時候,開發(fā)同學(xué)需要切換環(huán)境開發(fā),測試同學(xué)需要切換環(huán)境驗證,產(chǎn)品也需要切換環(huán)境體驗不同需求。
而切換環(huán)境這個操作,需要操作代理工具或者修改系統(tǒng) host 文件,效率低。更麻煩的是,當(dāng)測試服務(wù)器 IP 變化時,還需要每一個使用該環(huán)境的人去修改配置。
3、定位問題信息不全
產(chǎn)品、測試反饋問題的時候,通常只提供異常界面截圖、視頻等信息,這對開發(fā)定位問題來說,明顯不夠。有些產(chǎn)品或測試會從代理工具中導(dǎo)出請求信息,給開發(fā)同學(xué)定位問題帶來了一定的便利。然而,開發(fā)還是需要下載對應(yīng)文件并導(dǎo)入代理工具才能查看,整個鏈路冗長且高度依賴于代理工具。
Nohost就是為了解決以上問題而誕生的一個多環(huán)境配置及抓包調(diào)試平臺。
Nohost 是騰訊IMWeb前端團隊打造的一個多環(huán)境配置及抓包調(diào)試平臺,覆蓋了研發(fā)過程中開發(fā)聯(lián)調(diào)、測試、產(chǎn)品體驗三大階段,提供跨端代理工具、支持一鍵切換體驗測試環(huán)境、請求mock、實時/歷史抓包、代理轉(zhuǎn)發(fā)等能力,解決了測試環(huán)境管理粗糙、易沖突、聯(lián)調(diào)效率慢、配置復(fù)雜等問題,支撐了騰訊在線教育近年來數(shù)以萬計的需求研發(fā),提升了研發(fā)過程中聯(lián)調(diào)體驗環(huán)節(jié)的效率。
Nohost 本身是一個通用化設(shè)計、可擴展的方案,在騰訊內(nèi)部以及業(yè)界各大前端團隊均有較為廣泛的使用。在騰訊內(nèi)有超過80個前端團隊直接部署了 Nohost 或者基于 Nohost 能力擴展的應(yīng)用,覆蓋使用用戶群體超過1000人。業(yè)界上也有多個公司(小贏科技、網(wǎng)易游戲、字節(jié)跳動、轉(zhuǎn)轉(zhuǎn)二手車等)的前端團隊獨立部署使用。
開發(fā)聯(lián)調(diào)階段:
1、開發(fā)階段:
借助 Nohost 進行請求抓包、數(shù)據(jù)mock、配置個人專屬的測試環(huán)境(靜態(tài)資源代理、請求轉(zhuǎn)發(fā)到測試服務(wù)或者引用后臺配置好到測試服務(wù)環(huán)境),且全面支持Whistle規(guī)則以及Whistle插件生態(tài)(比如注入vConsole、eruda等)。
聯(lián)調(diào)階段:
后臺開發(fā)配置個人的測試服務(wù)環(huán)境,前端可以通過Nohost 切到指定環(huán)境進行聯(lián)調(diào)。聯(lián)調(diào)過程中發(fā)現(xiàn)問題,可以通過實時抓包定位問題,或者將抓包數(shù)據(jù)導(dǎo)出分享發(fā)給后臺,后臺可以在線預(yù)覽抓包信息,并對請求進行修改、重放。
配置好的環(huán)境后續(xù)也可以在產(chǎn)品體驗、測試驗證階段使用。
產(chǎn)品體驗階段:
產(chǎn)品同事只需打開Nohost客戶端(無需重復(fù)配置切換host)或在手機端配置固定Wi-Fi代理,通過界面的“環(huán)境選擇小面板”選擇測試環(huán)境進行體驗。體驗過程中如果出現(xiàn)問題,開發(fā)人員可以通過遠程進行實時抓包或通過歷史抓包數(shù)據(jù)進行定位。
測試驗證階段:
測試同事同樣只需打開Nohost客戶端或在手機端配置固定Wi-Fi代理,通過界面的“環(huán)境選擇小面板”選擇測試環(huán)境進行測試,并在測試過程中通過Nohost 實時抓包,將出現(xiàn)問題的請求抓包數(shù)據(jù)導(dǎo)出,并提供可直接訪問的鏈接,測試可直接將抓包鏈接放到問題單中,方便開發(fā)人員定位問題。
1. 自動注入“環(huán)境選擇工具”-小圓點
通過注入的“環(huán)境選擇工具”-小圓點,在頁面快捷切換任意環(huán)境體驗/調(diào)試


“環(huán)境選擇工具”還會有其他的快捷功能,比如查看抓包,復(fù)制鏈接等。支持使用自定義Whistle插件擴展。
“環(huán)境選擇工具”支持多端注入:Web、PC客戶端、H5、小程序,更多技術(shù)棧正在支持中。

2. 支持多賬戶多環(huán)境配置
Nohost支持多賬戶,每個賬戶都可以新建屬于自己的環(huán)境

環(huán)境代理規(guī)則可以通過 `@` 快捷引入別人配置好的環(huán)境,別人改了任何配置都會實時同步,無需通知引入該環(huán)境的人。

3. 支持抓包并分享
在我們調(diào)試測試過程中,如果分析到某個請求可能有問題,這時候希望能把這個請求給后臺查看具體什么問題,最原始的方式是截圖但信息顯然很難截全。而Nohost支持將抓包日志共享給其他人看。

開發(fā)在網(wǎng)頁直接查看抓包信息。

4. 強大的插件化系統(tǒng)
一個強大的插件化系統(tǒng),可以讓其他開發(fā)者在不了解系統(tǒng)實現(xiàn)的情況下,用插件的形式來進行自定義的功能擴展。Nohost 支持用插件進行擴展。用戶有自定義的需求時,可以使用插件進行自定義。像是功能的擴展,注入vConsole、抓包信息匯總、Mock等,都可以通過插件進行實現(xiàn)(Nohost兼容Whistle的所有插件)。
當(dāng)一個請求被代理到 Nohost ,Nohost 會從請求中讀取用戶選擇的 `賬戶/環(huán)境` 信息,轉(zhuǎn)發(fā)到對應(yīng)的進程(如無,會先fork出一個進程,啟動Whistle),進行請求、響應(yīng)的處理。不同的賬戶使用不同的進程,環(huán)境間天然形成隔離,同時多進程也能充分利用機器的性能。

接入 Nohost 是非常簡單的。需要準(zhǔn)備一臺有 Node 環(huán)境的服務(wù)器,簡單三步便可以快速接入。

更多配置或者更高級的應(yīng)用,可以去 Nohost git 和Nohost 官網(wǎng)了解:
官網(wǎng):https://nohost.pro/
https://github.com/Tencent/nohost
(點擊文末閱讀原文直接訪問)
請給項目?一個?Star?!
歡迎提出你的?issue?和?PR!
?國內(nèi)鏡像地址:
https://git.code.tencent.com/Tencent_Open_Source/noho
