《协议测试》抓包工具Fiddler实战教程 2

简介: 《协议测试》抓包工具Fiddler实战教程

03取移动APP请求


在手机上进行相应的设置,为手机抓包做准备
1.查看自己本机的IP在fiddler主界面,将鼠标移到【online】上面,就可以查看本地的IP地址了,如果你的fiddler没有显示【online】,可以通过【fiddler菜单——View——Show Toolbar】将【Show Toolbar】勾选中,就会显示【Online】信息了。

2.手机安装证书。(ios设置和Android设置基本一样)

前提条件:

手机和电脑要处于同一网络条件下(可以理解为:使用同一个WiFi)

fiddler的默认端口是:8888,不需要进行修改,使用默认的就可以。

一个手机可以安装多个证书,但是每安装的一个证书里面都设置有IP地址,所以:安装的证书和电脑IP是一一对应的,当前的这个证书只能针对某一台电脑使用,更换电脑后,该证书将不能使用,只能重新安装与更换的电脑的IP相同的证书才能使用。

第一步:手机下载证书。打开手机的浏览器,输入:【IP:8888】下载证书。

(注:中间的冒号一定要使用英文的冒号,中文的冒号是错误的)

例如:浏览器输入【http://192.168.xxx.xxx:8888】或者【192.168.xxx.xxx:8888】(这个地方的IP就是你电脑的IP)

第二步:安装证书.

有的手机可以直接点击已下载的文件进行安装,有的手机则不行。

如果不能直接安装证书,我们可以通过以下方法来安装证书。

1.Android:安装证书。由于安装系统众多,设置的方法不尽相同,下面几个方法以供参考。

手机——设置——搜索【证书】二字——选择:安装证书或者证书管理:点击安装证书,在你的众多文件里面去选择刚刚下载的fiddler的证书,点击安装

(注:选择安装的文件后,需要输入手机的锁屏密码。Android一定要有锁屏密码才能安装证书)

2.ios安装证书:直接点击已下载的文件安装即可,安装文件成功后,需要在【设置——通用——关于本机——证书信任设置】开启证书信任。

第三步:为手机设置代理.(ios和安卓差不多)

设置——无线网络(WLAN)——WLAN——长按已连接的WiFi 去修改网络——在高级选项里面——选择【手动代理】——出现以下界面,按图所示操作即可。

(或者长按通知栏WiFi按钮进入WiFi界面)

(有的机型需要先添加网络才能对网络进行修改,这个看个人手机情况)


04用Fiddler篡改请求数据


Fiddler拦截目标网页发出的请求,并篡改数据后发出。
访问目标网页,在fiddler的命令行输入bpu 目标网页网址并回车,然后在目标网页输入数据发送请求,fiddler拦截到请求,双击该请求,在请求的表单页签修改数据,然后点击run。
示例:①命令行中输入bpu https://home.51cto.com/index并回车。Fiddler底部如图所示,说明命令生效。

网页访问该网址,是一个登录页面。

输入正确的账号密码后点击登录如图所示,显示该页面正在加载中,而与此同时,fiddler表示收到一条消息。没错,发出的登录请求被拦截下来了。

上图所示,有红色标记的就是刚刚被拦截下来的登录请求,双击显示该请求。选中webform表单页签,可以清楚地看到我提交的登录信息。

此时我们修改password,然后点击绿色按钮run to completion,这条被篡改后的请求就发出去了并收到了响应。网页端如图所示,提示账号密码错误。

测试完成后,需要退出请求包拦截模式,只需在命令行中输入bpu回车即可,输入后如图。


05用Fiddler进行弱网测试

什么是弱网

  验证在弱网的情况下软件的处理机制,从而避免因用户体验不友好造成用户的流失。弱网测试属于健壮性测试。在弱网测试条件下,要测试产品的运行状态、处理机制、提示信息,以及网络恢复后的重连等。

弱网环境带来的问题

  1、操作时间慢。用户在地铁里操作手机APP,由于网络慢,页面加载不出来。原因可能是API在网络慢的情况下性能很差。用户在公交车上用手机APP看新闻,当公交车进入隧道的时候,网络变得很慢,APP上的新闻一直没法加载出来。我们需要测试每个API消耗的时间,这个指标可以衡量APP性能的好坏。

 2、用户体验不好。一个安卓手机用户使用一款看小说的APP在地铁里看小说,当地铁进入隧道的时候,手机信号中断了。用户单击翻页,想看下一页的时候,因为网络中断,APP的界面卡死并且闪退。原因是APP不稳定,没有处理好网络中断的情况。

  3、非正常情况下,出现Bug的可能性会增加。如一个电商的手机APP有秒杀优惠券的功能。一些APP用户在乘坐电梯的时候,使用APP来秒杀优惠券。单击秒杀优惠券的按钮后,APP响应缓慢。于是,用户重复单击秒杀优惠券按钮。这就造成了几乎同一时间,同一个用户有多个HTTP请求发送服务器,形成了并发,结果用户抢到了多张优惠券。

弱网的场景

  1、网络慢或者延迟,导致加载时间长。  2、网络中断,Web服务器返回500等状态码。  3、网络超时,HTTP请求发出去后,很久都没有响应。Fiddler模拟网络延迟  1、启动Fiddler,选择Rules - Performances - Simulate Modem Speeds  2、打开浏览器,访问网站。        3、想要修改弱网参数的话,可以点击fiddlerScript 在代码里找到onBeforeRequest

  改动数值,保存Script即可。

  4、保存完之后,原本已经勾选的Simulate Modem Speeds会被取消勾选:再次选中 Rules - Performances - Simulate Modem Speeds

  5、再次打开浏览器,访问网页


Fiddler还有很多的用处,也需要大家在实践中逐步去了解,另外协议的基础知识也是必不可少的。

相关文章
|
20天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
52 3
|
24天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
39 1
|
28天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
51 2
|
29天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
32 2
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
411 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
69 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
252 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
264 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
52 5
|
2月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0