Web 调试工具——whistle上手使用(安装与基本使用)

2024-01-14 18:59

本文主要是介绍Web 调试工具——whistle上手使用(安装与基本使用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

whistle上手使用

Write and share what I see and hear

whistle是基于Node实现的跨平台web调试代理工具
点击访问whistle

在开发测试的过程中,会遇到一些问题,只看页面是发现不了问题的,尤其是移动端H5,本人深有体会,这个时候就需要使用代理工具进行抓包排查问题,同类型的工具有Fiddler和Charles。
最近在看到了 whistle ,感觉还挺好用的,所以拿来体验了一把,虽然配置的过程中出现了一些小问题,但配完后发现还是挺好用的。whistle有很多优点,这里列一下本人体验到的:

  • 配置简单:whistle的配置类似于系统hosts的配置,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式。
  • 界面简单易懂:从界面来看,whistle的功能划分为了network(网络)、rules(规则)、values(数据)、pulgins(插件)四大模块,通过tab页签进行切换。
  • 文档全面:whistle官网提供了详细的说明文档,工作中遇到的情况只要查阅文档都能解决。

本文记录了本人在安装使用 whistle 过程中遇到的问题,由于本人用的是一台新的windows + win10的笔记本,所以在安装过程中遇到的问题有些多,所以步骤中掺杂了一些解决办法,没有遇到的话可以直接跳过。详细的使用步骤whistle的官网上面是很清晰的,有问题可以直接到whsitle官网去查看文档。

安装启动

安装Node

由于whistle是基于Node的,自然需要先安装Node环境。下面是whistle官网对Node版本的建议:

whistle支持v0.10.0以上版本的Node,为获取更好的性能,推荐安装最新版本的Node。

安装whistle

Node安装成功后,执行如下npm命令安装whistle

npm install -g whistle

安装完成后查看版本

查看版本:

whisle -V 

如果能正确输出whistle的版本信息,就表示安装成功了。

但是在这里我遇到了一个问题在这里插入图片描述
搞半天没明白什么情况,一顿猛搜,终于给我找到解决方案了,因为我这台笔记本是新的,所以系统默认禁止执行不信任脚本了,需要打开用管理员权限打开终端,输入

set-ExecutionPolicy RemoteSigned

在这里插入图片描述
输入Y,回车就好了

有的小伙伴可能搜到的命令是小写的,不用在意,小写也行的

启动whistle

最新版本的whistle支持三种等价的命令whistle、w2、wproxy,本文使用w2命令。
下面是常用的命令:

  • 启动whistle:
    w2 start
    
  • whistle的默认端口是8899,如果要指定端口号,执行下面的命令:
    w2 start -p 8888
    
  • 重启whistle(也支持指定端口):
    w2 restart
    
  • 停止whistle:
    w2 stop
    

配置代理

官网上列举了配置代理的方式,我还安装了官方推荐的SwitchOmega插件,但是目前还没明白是干什么用的。

先讲讲给手机配置代理吧:
以安卓手机(小米)为例

  1. 找到设置-WLAN,选择当前连接的wifi,点进去
    在这里插入图片描述
  2. 点击配置代理,修改为手动:
    在这里插入图片描述
  3. 修改为手动,输入ip,whistle端口默认是8899:
    在这里插入图片描述

访问配置页面

启动whistle及配置完代理后,用Chrome浏览器(由于css兼容性问题界面只支持Chrome浏览器)访问配置页面,如果能正常打开页面,whistle安装启动完毕,可以开始使用。

官方推荐了两种方式来访问配置页面,但是我用的时候第一种总是打不开,所以就用了第二种方式
可以通过以下两种方式来访问配置页面:

  1. 域名访问 http://local.whistlejs.com/
  2. ip+端口访问 http://127.0.0.1:8899

找了一种打不开 local.whistlejs.com 的解决方法
但是我试了之后还是不好使😔

可以看到whistle的控制台
在这里插入图片描述

安装https证书

whistle的设置页面可以正常打开,这表示说我们可以代理http请求了。

如果你的页面和接口全部是http请求,就可以忽略安装https证书的这一步了。但现在好多都是https的请求,比如说我们的测试环境都已经是https的了,因此还是建议提前把证书装上。
如果你的环境中出现了以下情况(当然,没有装好证书的话这些情况基本都会出现的),就是https证书没有安装或者没装好:

  • whisle的配置页面可以打开,但是网页不能打开或者只加载了一部分页面
  • https网站打不开
  • whistle配置页面中network中443端口的请求前面有小锁,或者抓不到请求
  • 浏览器提示“您的连接不是私密连接”
下载证书

我们可以通过下面的方式下载证书:

  1. 在配置代理的设备上打开浏览器,在浏览器中输入rootca.pro即可下载,这种是最便捷的方式,给手机安装的时候也可以用
  2. 在whistle的设置页面,点击https,会弹出一个带二维码的界面,点击 Download RootCA 或者扫二维码下载
    在这里插入图片描述

证书的安装是不依赖于代理工具的,就是说无论用的是whistle还是Fiddler或者是Charles,步骤都是一样的。有大佬总结了并汇总了安装步骤,详见【安装证书】

以上就是本人在安装配置时的操作过程了

使用

下面是简单的使用过程
在这里插入图片描述

  • whistle控制台核心部分的分区有下面几个
    • NetWork: 查看请求响应的详细信息及请求列表的Timeline
    • Rules: 匹配规则,whistle核心,详见下一节配置方式
    • Values: 配置key-value的数据,在Rules里面配置可以通过{key}获取
    • Plugins: 显示所有已安装的插件列表,开启关闭插件功能

这里主要配置了一下Rules
在这里插入图片描述
其他具体的配置方式有很多的,可以参考官方文档哦

这篇关于Web 调试工具——whistle上手使用(安装与基本使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/606191

相关文章

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Java中的Cursor使用详解

《Java中的Cursor使用详解》本文介绍了Java中的Cursor接口及其在大数据集处理中的优势,包括逐行读取、分页处理、流控制、动态改变查询、并发控制和减少网络流量等,感兴趣的朋友一起看看吧... 最近看代码,有一段代码涉及到Cursor,感觉写法挺有意思的。注意是Cursor,而不是Consumer