前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nohost 开源了

Nohost 开源了

作者头像
腾讯开源
发布2021-01-18 09:10:14
1.1K0
发布2021-01-18 09:10:14
举报

项目背景

一个需求的研发需要经历开发联调、产品体验、测试验证、发布部署这4个阶段,在这个过程中,我们经常会遇到下面这些问题:

1、环境冲突、代码被覆盖

随着业务的发展,常常会有多个需求同时涉及开发一个项目的场景。由于测试服务器数量不够,经常会有环境冲突问题,甚至会出现环境被其他需求代码覆盖的情况。

2、切换环境成本高

多需求并行开发的时候,开发同学需要切换环境开发,测试同学需要切换环境验证,产品也需要切换环境体验不同需求。

而切换环境这个操作,需要操作代理工具或者修改系统 host 文件,效率低。更麻烦的是,当测试服务器 IP 变化时,还需要每一个使用该环境的人去修改配置。

3、定位问题信息不全

产品、测试反馈问题的时候,通常只提供异常界面截图、视频等信息,这对开发定位问题来说,明显不够。有些产品或测试会从代理工具中导出请求信息,给开发同学定位问题带来了一定的便利。然而,开发还是需要下载对应文件并导入代理工具才能查看,整个链路冗长且高度依赖于代理工具。

Nohost就是为了解决以上问题而诞生的一个多环境配置及抓包调试平台。

项目简介

Nohost 是腾讯IMWeb前端团队打造的一个多环境配置及抓包调试平台,覆盖了研发过程中开发联调、测试、产品体验三大阶段,提供跨端代理工具、支持一键切换体验测试环境、请求mock、实时/历史抓包、代理转发等能力,解决了测试环境管理粗糙、易冲突、联调效率慢、配置复杂等问题,支撑了腾讯在线教育近年来数以万计的需求研发,提升了研发过程中联调体验环节的效率

Nohost 本身是一个通用化设计、可扩展的方案,在腾讯内部以及业界各大前端团队均有较为广泛的使用。在腾讯内有超过80个前端团队直接部署了 Nohost 或者基于 Nohost 能力扩展的应用,覆盖使用用户群体超过1000人。业界上也有多个公司(小赢科技、网易游戏、字节跳动、转转二手车等)的前端团队独立部署使用。

适用场景

开发联调阶段:

1、开发阶段:

借助 Nohost 进行请求抓包、数据mock、配置个人专属的测试环境(静态资源代理、请求转发到测试服务或者引用后台配置好到测试服务环境),且全面支持Whistle规则以及Whistle插件生态(比如注入vConsole、eruda等)。

联调阶段:

后台开发配置个人的测试服务环境,前端可以通过Nohost 切到指定环境进行联调。联调过程中发现问题,可以通过实时抓包定位问题,或者将抓包数据导出分享发给后台,后台可以在线预览抓包信息,并对请求进行修改、重放。

配置好的环境后续也可以在产品体验、测试验证阶段使用。

产品体验阶段:

产品同事只需打开Nohost客户端(无需重复配置切换host)或在手机端配置固定Wi-Fi代理,通过界面的“环境选择小面板”选择测试环境进行体验。体验过程中如果出现问题,开发人员可以通过远程进行实时抓包或通过历史抓包数据进行定位。

测试验证阶段:

测试同事同样只需打开Nohost客户端或在手机端配置固定Wi-Fi代理,通过界面的“环境选择小面板”选择测试环境进行测试,并在测试过程中通过Nohost 实时抓包,将出现问题的请求抓包数据导出,并提供可直接访问的链接,测试可直接将抓包链接放到问题单中,方便开发人员定位问题。

功能介绍

1. 自动注入“环境选择工具”-小圆点

通过注入的“环境选择工具”-小圆点,在页面快捷切换任意环境体验/调试

“环境选择工具”还会有其他的快捷功能,比如查看抓包,复制链接等。支持使用自定义Whistle插件扩展。

“环境选择工具”支持多端注入:Web、PC客户端、H5、小程序,更多技术栈正在支持中。

2. 支持多账户多环境配置

Nohost支持多账户,每个账户都可以新建属于自己的环境

环境代理规则可以通过 `@` 快捷引入别人配置好的环境,别人改了任何配置都会实时同步,无需通知引入该环境的人。

3. 支持抓包并分享

在我们调试测试过程中,如果分析到某个请求可能有问题,这时候希望能把这个请求给后台查看具体什么问题,最原始的方式是截图但信息显然很难截全。而Nohost支持将抓包日志共享给其他人看。

开发在网页直接查看抓包信息。

4. 强大的插件化系统

一个强大的插件化系统,可以让其他开发者在不了解系统实现的情况下,用插件的形式来进行自定义的功能扩展。Nohost 支持用插件进行扩展。用户有自定义的需求时,可以使用插件进行自定义。像是功能的扩展,注入vConsole、抓包信息汇总、Mock等,都可以通过插件进行实现(Nohost兼容Whistle的所有插件)。

功能演示

Nohost原理

当一个请求被代理到 Nohost ,Nohost 会从请求中读取用户选择的 `账户/环境` 信息,转发到对应的进程(如无,会先fork出一个进程,启动Whistle),进行请求、响应的处理。不同的账户使用不同的进程,环境间天然形成隔离,同时多进程也能充分利用机器的性能。

如何接入

接入 Nohost 是非常简单的。需要准备一台有 Node 环境的服务器,简单三步便可以快速接入。

更多配置或者更高级的应用,可以去 Nohost git 和Nohost 官网了解:

官网:https://nohost.pro/

https://github.com/Tencent/nohost

(点击文末阅读原文直接访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/nohost

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档