首页>软件资讯>常见问题

常见问题

Fiddler如何轻松捕获安卓HTTPS移动流量

发布时间:2023-01-18 11:20:12人气:261

如今,应用程序可以在多个平台上访问 - 台式PC,平板电脑,智能手机等。虽然从桌面检查和分析HTTPS流量和Web应用程序性能是一件容易的事,但对于移动流量来说并非如此。


直到现在!使用Fiddler Everywhere,您可以通过几个简单的步骤轻松捕获,调试,检查甚至修改您的移动流量!

示例域.png


为什么我到处都需要提琴手?捕获移动流量的实际价值是什么?

越来越多的产品为其 Web 应用程序提供跨平台支持。Android 操作系统在所有平台上的所有操作系统中拥有约 40% 的全球市场份额 (https://gs.statcounter.com/os-market-share)。忽略您的应用程序在移动设备上的工作方式不再是一种选择!


你可能会问,但为什么我需要Fiddler Everywhere作为代理?以下是三个直接的原因:


相对较少的移动或Web应用程序不使用在线连接(可能除了一些计算器应用程序),并且大多数应用程序通过HTTPS发出网络请求。在大多数情况下,Web 应用或移动应用程序发送数据、接收响应并使用响应数据来更改 UI/可视化输出。使用像Fiddler Everywhere这样的代理可以让您在单个环境中有效地测试上述内容。

您可以优化开发和测试过程,同时在多个不同的操作系统(macOS,Linux,Windows,Android和iOS)上使用单个代理设置。

通过 Fiddler Everywhere,您还可以模拟不同的服务器行为,而无需接触服务器本身(甚至无法访问它),也无需根据开发环境进行更改。如果您的客户端应用程序使用 Angular、React、原生 Android 或其他任何东西,则不会有任何变化。这大大简化了测试工作和花费的时间。

还有更多现实生活中的用例。Fiddler Everywhere 将伸出援助之手的其他一些可能情况:


根据模拟的真实条件(如延迟响应、用户错误输入、格式错误的请求等)检查和测试不同的 UX 和 UI 场景。

检查不同的 HTTPS 请求和响应是否存在攻击者可能利用的缺陷来影响数据机密性、完整性或可用性。

使用 Fiddler Everywhere 作为反向代理,针对不同的服务器设置测试客户端应用。

提取和检查技术、统计和分析数据。

与团队成员或其他开发人员、支持工程师或质量保证工程师轻松协作。

简单的配置

在深入一些真实的用例演示之前,我们需要配置您的Android设备以查看并信任Fiddler Everywhere代理。


几乎所有现代移动应用程序和所有移动浏览器都使用加密来在线交换数据,通常,我们谈论的是TLS协议和HTTPS流量。代理及其证书颁发机构需要正确的配置,具体取决于操作系统类型和版本。


第 1 步:安装 Fiddler Everywhere 并启用 HTTPS 捕获 (https://docs.telerik.com/fiddler-everywhere/installation-and-update/installation-procedure#getting-started-guides)


第 2 步:启用“允许远程计算机连接”选项 (https://docs.telerik.com/fiddler-everywhere/traffic/configure-android#configuring-fiddler-everywhere )


第 3 步:在 Android 设备/模拟器 (https://docs.telerik.com/fiddler-everywhere/traffic/configure-android#configuring-the-android-device 上设置 Fiddler Everywhere 代理和信任证书)


瞧!您已准备好开始从移动浏览器捕获HTTPS流量。


使用案例

Fiddler Everywhere 最强大的功能是能够在“检查器”选项卡中以方便的格式可视化捕获的实时流量,在“概述”选项卡中将分析和统计数据显示为摘要,以及通过“规则”选项卡修改请求和响应(模拟服务器和用户行为)。


实时流量

我们将使用 Fiddler Everywhere 自己的文档页面进行介绍性演示。让我们打开文档登录页面,看看实时流量主动捕获入站和出站流量时会发生什么。捕获的流量如下图所示(请注意,为清楚起见,我们使用了基于术语“telerik.com”的 URL 列过滤)。

实时流量捕获.png


立即,一些事情变得明显:


位于 docs.telerik.com/fiddler-everywhere 的文档终结点使用重定向状态 301 已永久移动,然后登陆 https://docs.telerik.com/fiddler-everywhere/introduction。

该网站使用 HTTP 版本 1.1。

我们可以立即看到,最大的大小是访问特定 Web 字体的会话(上面屏幕截图中的列号 6236)。我们可以将此信息用作针对较慢的网络优化站点的选项(例如,通过将该字体替换为较小尺寸的字体或添加 CDN 选项)。

这些列提供有关返回状态代码、使用的 HTTP 方法(GET、POST 等)、字节大小、使用的 HTTP 版本、远程 IP 地址、时间戳、内容类型和多个其他字段的结构化会话信息。每个捕获的会话都包含许多有用的信息,我们可以立即使用这些信息,并且具有内置的即时操作,我们可以通过上下文菜单应用这些信息(标记、过滤、共享、重播、添加新规则等)。


“概述”选项卡

通过“概述”选项卡,我们可以选择多个感兴趣的会话并分析其统计数据,以查找用户体验中可能存在的偏差或瓶颈。这里的好处是,我们可以在不同的移动设备上快速测试现实生活中的行为,并查看我们的 Web 应用程序在不同环境中的行为(例如较慢的硬件、网络延迟、测试某些资源的不可用等)。

“概述”选项卡.png


值得注意的是,“概述”选项卡将在选择单个会话时调整其 UI。这样,我们可以检查任何会话的特定 HTTP 请求和响应。

“概述”选项卡的不同视图.png


督察

交通检查自然会通过“检查员”选项卡继续进行。双击单个会话,让 Fiddler Everywhere 加载最合适的检查器,或使用单击保留上次加载的检查器类型。当您需要调查特定数据(如多个会话的标头)并且想要阻止加载默认检查器类型时,后者非常有用。


督察是《无处不在的小提琴手》的骨干。每个会话由一个请求和响应检查器组成,每个检查器都有多种 UI 类型,我们可以使用它们来提取有价值的信息。


一些基本示例:


我们可以使用标头检查器来获取授权令牌,我们可以在开发过程中轻松重用该令牌

我们可以使用身体检查器来获取有关使用的加密和证书颁发机构的基本信息。

我们可以使用预览检查器来测试应用不同规则后 UI 的外观。

“检查器”选项卡.png


规则

我们可以使用“规则”选项卡创建一个规则,故意中断 Web 字体请求,以可视化如果首选字体未加载,我们的网站会发生什么情况。您还记得我们在初始捕获中观察到的大 Web 字体图标请求吗?为什么不测试如果我们明确应用违反它的规则会发生什么(QA工程师在后台庆祝)?

规则生成器.png


从我的安卓应用程序中捕获HTTPS怎么样?

到目前为止,用例描述了一个场景,我们正在测试可通过移动浏览器(或任何其他类型的浏览器)访问的网页。您可能想知道Fiddler Everywhere是否适合测试直接从Android应用程序中的API发送的HTTPS请求?


是的,您可以使用 Fiddler Everywhere 来捕获、检查和调试来自开发中的 Android 应用程序的任何 HTTPS 流量。最后一部分至关重要 - 默认情况下,Android 应用程序配置为拒绝任何用户安装的证书颁发机构。这意味着您可以从明确配置为信任用户安装的 CA 的 Android 应用程序(由应用程序的开发人员)捕获 HTTPS 流量。


详细了解如何使用真实设备或您选择的 Android 虚拟设备,并将应用程序配置为信任 Fiddler Everywhere 根证书。


结语

Fiddler Everywhere是一个建立在坚实基础上的现代工具(Fiddler Classic于2003年首次出版)。该工具不断发展并添加功能,如云集合、规则构建器、扩展协作、多种导出和导入格式、多个检查器、统计信息、HTTP/2 支持、WebSocket 支持、移动设备支持、Windows、macOS 和 Linux 的本机支持等等。


Android和iOS的移动故事(我有没有提到我们确实支持iOS捕获?!)很强大。它提供了一个绝佳的机会,可以提高您的团队的开发和测试能力,以应对快速发展的移动应用程序市场。



上一条:如何通过实时应用程序随时随地使用Fiddler

下一条:如何在Fiddler Everywhere中启用HTTP / 2流量捕获