MynaTest|一款面向 Web 测试人员的 Chrome MV3 扩展,开箱即用的测试辅助工具集

[复制链接]
发表于 2026-9-18 12:55:56 | 显示全部楼层 |阅读模式
日常做 Web 功能测试、接口调试、前端问题定位,你是不是经常必要来回切换多个工具:时间戳转换、JSON 格式化、JWT 解码、接口对比、Mock 拦截、环境区分、Bug 截图标注…… 浏览器装一堆插件,工具零散、切换繁琐,还会遇到 MV3 扩展各种权限、沙箱隔离的坑。今天给大家介绍一款开源 Chrome 扩展 MynaTest,把测试高频工具全部整合进浏览器侧边栏,按需启用,插件化扩展,专门为 Web 测试人员打造。
一、项目简介

MynaTest 是基于 Chrome Manifest V3 开发的测试辅助工具集,核心设计理念:工具模块化、侧边栏常驻、按需开启、低侵入网页。
不同于传统浏览器扩展把所有功能全部加载,MynaTest 支持在设置页勾选必要用到的工具,不用的工具不会占用内存。所有工具统一在浏览器右侧侧边栏运行,不用新开标签页,调试页面的同时直接操作工具。
项目开源在 GitHub,采用 MIT 协议,你可以直接下载源码本地加载,也可以二次开发新增自己业务场景必要的测试工具。
💡紧张提示:扩展重载之后,一定要革新目标测试网页,页面内捕获脚本才会见效,如果不革新,工具捕获网络请求会失效,扩展也会弹出提示提醒革新页面。
二、快速上手:安装与基础操作

2.1 本地加载扩展

MynaTest 目前必要加载解压包利用,操作步骤非常简单:

  • Chrome 浏览器地址栏输入 chrome://extensions/,打开扩展管理页面
  • 打开页面右上角开发者模式开关
  • 点击【加载已解压的扩展程序】,选择项目的根文件夹
  • 在浏览器扩展栏点击 MynaTest 图标,即可唤起右侧侧边栏
2.2 侧边栏怎么用

侧边栏是 MynaTest 最紧张交互界面,常驻浏览器右侧:

  • 点击各个工具图标,切换到对应工具面板
  • 拖动排序:按住工具图标上下拖拽,自界说工具顺序,松开主动保存配置
  • 鼠标悬浮图标,会弹出工具名称提示,快速识别工具
  • 底部齿轮图标,可以直接跳转扩展设置页面
2.3 设置页管理工具

两种方式进入设置页面:

  • 侧边栏底部点击齿轮图标
  • 扩展图标右键菜单,选择【选项】
设置页将工具分为网络工具、开发工具、测试工具三大分组。只必要勾选想要启用的工具,保存之后侧边栏立刻更新,不必要重启浏览器。不勾选的工具不会被加载运行,减少性能消耗。
三、内置工具详解,覆盖测试绝大多数场景

MynaTest 内置 12 个实用工具,覆盖接口调试、数据处理、环境识别、UI 测试、Bug 协助、正则校验等场景,下面逐个介绍功能:
📡网络工具组

1. 请求对比

做版本回归、环境对比经常必要对比两套环境同一个接口返回是否一致。
这个工具可以捕获两次接口响应,支持JSON 路径级 diff宁静凡文本行级 diff,高亮两处返回值不一样的地方,快速定位接口变更,不用复制到第三方 diff 网站。
2. 轻量压测

不必要打开 Postman 就可以简单接口压测:捕获浏览器当前页面的接口,一键添补请求参数,支持配置并发次数、请求轮次。
内置响应状态断言、响应内容查看,运行完成之后输出统计指标,还可以直接下载压测报告,适合简单接口稳定性验证。
3. JWT 解析

复制 JWT 字符串粘贴进去,一键解码 Header 头部和 Payload 载荷内容,方便调试登录态、鉴权相关问题。
🛠️开发工具组

4. 时间戳转换

开发测试经常必要时间、时间戳来回换算,支持秒级、毫秒级时间戳双向转换,复制效果一键复制剪贴板。
5. JSON 格式化

粘贴压缩后的 JSON 字符串,一键格式化美化;同时支持压缩 JSON、转义、反转义字符串,处理接口返回乱码转义文本非常方便。
6. 数据对比

独立的数据 diff 工具,可以手动粘贴两段 JSON 或者大段文本,做行级差异对比。和请求对比区别在于,不必要捕获网络请求,手动粘贴任意两份数据就可以对比。
7. Cookie/Storage 管理

可以查看、导出、导入页面 Cookie、localStorage、sessionStorage,支持登录态快照保存和一键切换。测试不同账号、不同登录状态的时候,可以快速切换环境,不用反复登录账号。
8. 正则测试

一边输入正则,一边输入待匹配文本,实时展示匹配效果。内置 18 套高频正则模板,包含手机号、邮箱、IP 地址、身份证等,测试表单校验直接拿来用。
9. 环境横幅

这是一个非常实用防误生产神器!配置域名匹配规则,当访问开发、测试、预发布环境,页面顶部主动出现彩色提示横幅,一眼区分当前环境,避免测试人员误操作线上生产页面。
可以自界说不同环境横幅颜色、匹配域名。
🧪测试工具组

10. Mock 拦截器

本地调试时拦截指定 URL 请求,返回自界说 Mock 响应。支持多套 Mock 场景配置,一键切换整套 Mock 规则。不必要搭建本地 Mock 服务,浏览器扩展直接拦截页面 fetch/XHR 请求,快速模拟非常返回、边界场景。
留意:基于 MAIN 世界脚本 Hook,无需依赖 webRequest,兼容 MV3 限制。
11. 链接检查

一键扫描当前页面所有链接,批量校验链接是否可访问,识别 404、500 等非常链接,输出跳转地址。做页面回归测试,检查死链接非常高效。
12. 快照对比(UI 像素对比)

选中页面上任意 DOM 元素,捕获基准快照;后续再次捕获,工具做像素级比对,UI 发生变动的地方红色高亮标记出来。适合回归测试,快速发现页面 UI 意外改动。
13. Bug 报告助手

页面框选地区,支持 Canvas 标注涂鸦,主动采集当前页面环境信息(URL、UA 等),方便快速截图编写 bug。
以上所有工具全部按需开启,不用的工具不会在侧边栏显示。
四、核心架构:MV3 下如何实现完整网络捕获

很多做 Chrome 扩展的同学都知道,Manifest V3 中,chrome.webRequest本领被大幅限制,拿不到 responseBody 响应体,很多老的抓包扩展在 MV3 无法完整捕获接口返回内容。MynaTest 巧妙解决这个痛点。
简单梳理整个数据链路:

  • 通过 manifest 声明式注入脚本到页面MAIN 世界,直接 Hook 原生 fetch 和 XHR,拿到完整请求头、请求体、响应头、响应体。
  • 通过window.postMessage把捕获到网络数据,转发给 ISOLATED world 的 content 脚本。
  • content 脚本通过 Port 长毗连,把数据转发给 background Service Worker。
  • background 做消息缓冲,广播消息给侧边栏。
  • 侧边栏各个工具订阅事件总线,拿到捕获的网络请求数据。
同时针对 MV3 Service Worker 会空闲挂起这个经典问题做了大量健壮性处理:

  • Service Worker 挂起会导致 Port 断开;侧边栏检测断线主动重连,断开期间请求在后台缓存,重连完成回放消息,不会丢失网络数据包。
  • content 脚本 Port 断开主动重连。
  • 如果扩展重载,旧网页脚本上下文失效,页面只会弹出一次提醒,提示革新网页。
  • 检测页面覆盖改写原生 fetch 的时候,会主动重新 hook 保证捕获持续见效。
这一套架构可以给做 MV3 扩展抓包功能的开发者做参考。
五、插件化:如何开发自界说工具

MynaTest 最大亮点之一就是插件化工具机制。如果内置工具无法满足你的业务测试场景,可以非常简单新增自界说工具,不必要改动扩展底层核心代码。
新增工具简要步骤


  • 在tools/目录新建 js 文件,采用 IIFE 立即实行函数,不要利用 ES Module(SidePanel 中 type="module" 会静默失效)
  • 编写 meta 元信息(工具 ID、名称、描述、图标、分类)、render()函数输出 HTML,mount()函数绑定事件,还可以订阅全局事件总线,比如订阅network:request拿到页面捕获到接口数据。
  • 在sidepanel.html、options.html两个页面 body 末端引入这个 js 脚本。
保存源码,重新加载扩展,革新页面,你的自界说工具就会主动出现在侧边栏、设置勾选列表。
  1. // 最简模板示例
  2. (function () {
  3.   const flashMessage = window.MynaUtils.flashMessage;
  4.   const meta = {
  5.     id: 'my-custom-tool',
  6.     name: '我的自定义工具',
  7.     desc: '业务测试自定义小工具',
  8.     iconUrl: 'icons/my-tool.png',
  9.     category: 'dev',
  10.     categoryName: '开发工具'
  11.   };
  12.   function render(container) {
  13.     container.innerHTML = `<h3>自定义工具面板</h3><button id="demoBtn">测试按钮</button>`;
  14.   }
  15.   function mount(context) {
  16.     context.container.querySelector('#demoBtn').addEventListener('click', ()=>{
  17.       flashMessage('工具运行成功');
  18.     })
  19.     // 订阅网络请求事件
  20.     const off = context.events.on('network:request', payload => {
  21.       console.log('捕获请求', payload.url)
  22.     })
  23.     return ()=> off(); // 返回清理函数,组件销毁取消事件订阅
  24.   }
  25.   window.MynaTools = window.MynaTools || [];
  26.   window.MynaTools.push({meta, render, mount})
  27. })()
复制代码
工具可以订阅全局事件,此中最常用就是network:request事件,可以拿到 url、method、status、请求体、响应体等完整接口信息。你可以基于这个本领开发业务专属工具,比如业务数据快速校验、主动造数工具等。
六、扩展用到的权限说明

表格
权限利用场景storage保存勾选启用工具列表,存储 Mock 配置、快照、登录态快照sidePanel浏览器侧边栏本领scripting部分工具注入脚本读写页面存储activeTab获取当前标签页信息cookiesCookie 管理器读写页面 Cookietabs查询标签 ID、URLhost 权限,脚本注入页面;压测工具绕过 CORS 发起请求七、适合哪些人?


  • Web 测试工程师:日常功能、接口、回归测试,减少各种工具来回切换;环境横幅防止误操作生产。
  • 前端开发:调试接口、Mock、快速格式化数据、定位页面问题。
  • Chrome 扩展二次开发者:可以参考它 MV3 抓包、插件化架构实现思路,基于框架开发自己内部工具。
八、总结

MynaTest 解决了测试人员日常调试的很多痛点:
✅ 全部工具收拢浏览器侧边栏,不用新开标签
✅ Manifest V3 架构,完整捕获 fetch/XHR 请求响应体
✅ 模块化按需启用工具,低落性能开销
✅ 完善非常容错,处理 Service Worker 挂起问题
✅ 简单插件化机制,团队可以快速开发业务工具
✅ 开源 MIT 协议,可以自由修改、内部二次分发
如果你经常做 Web 测试,强烈发起尝试这个扩展,也欢迎基于它开发适合自己团队的测试小工具。
项目地址:https://github.com/tynam-yang/mynatest

免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表