Fiddler抓包工具介绍:抓取app数据包及相关测试要点

2026-03-20 21:08:15发布    浏览1次    信息编号:129241

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

Fiddler抓包工具介绍:抓取app数据包及相关测试要点

认识抓包工具抓包介绍

抓包到的数据,包括请求数据和响应数据请求数据响应数据URL

端口号部分:定位资源所在服务器的哪一个程序中

请求/资源路径:定位资源所在服务器的具体位置

查询参数:传递对于资源进行何种操作(传递业务数据)

Get和Post区别响应状态码

分类:
    - 2XX:成功
    - 3XX:重定向(页面跳转)
    - 4XX:客户端错误(重点关注:后端开发可能产生BUG了)
    - 5XX:服务器错误

响应体

常见的响应体的数据类型:json(最主要),Html,图片...

抓到数据后怎么进行前后端定位

1.进行抓包,没有抓到包---结论:前端问题(前端在用户点击登录时,没有进行登录接口的调用)
2.进行抓包,抓到了接口请求数据,但请求数据错误---结论:前端问题(没有按照后端要求进行数据传递)
3.进行抓包,又抓到请求数据且正确,但响应数据错误---结论:后端问题
4.进行抓包,抓到请求数据且正确,查看响应数据正确---结论:前端问题(前端获取接口返回的响应数据,但在页面展示出现问题)

弱网测试1.设置模拟网速2.开启限速

3.进行弱网测试计算延迟时间断点测试

目的:绕过前端限制(修改请求的数据和响应的数据)
实现步骤:
    1.修改请求数据
        1.1 开启请求断点
        1.2 在浏览器中操作对应的功能,发送请求
        1.3 发送的请求被抓包工具拦截,拦截之后可以在抓包工具中修改对应的请求数据
    2.修改响应数据
        2.1 开启响应断点
        2.2 操作浏览器,发送对应的请求
        2.3 拦截返回的响应数据,针对响应数据进行修改

修改请求数据

目的:传入无法通过UI界面,传入的请求数据
使用场景:校验后端接口,是否实现需求的功能

开启请求断点

在浏览器中操作对应的功能,发送请求

发送出去的请求,被抓包工具给拦截了,拦截完成之后,能够在抓包工具里头修改相应对应的请求数据。

关闭断点

修改响应数据

使用场景:(提高效率)后端接口返回各种场景响应数据,前端UI界面展示的实际结果是否与预期一致

开启响应断点

操作浏览器,发送对应的请求

拦截返回的响应数据,针对响应数据进行修改

app与web测试区别

1.相同点

1.App与web的后端系统是相同的

2.APP是借助http或者https协议来开展数据交互的,web同样也是凭借http或者https协议来进行数据交互的。

2.不同点

1.app所采用的架构是C/S架构,也就是客户端与服务器的形式,web所采用的架构则是不是B/S架构,也就是浏览器与服务器的形式。

2.app跟后端的数据交互所采用的格式主要是json,web和后端的数据交互格式主要是json/html。

app测试范围

1.app的功能测试与web端一样,只是点的地方不一样

2.App的专项测试:

1.安装、卸载、升级测试

2.兼容性测试

3.push推送测试

4.交叉事件测试

5.用户体验测试

3.对App进行性能测试,在其使用过程当中进行监控,查看性能指标是不是能够满足预期所规定的要求。

说明:一般情况下,我们平常讲的性能测试,所指的是针对接口所开展的性能测试 ,App性能测试是专门归属于App客户端的。

1.CPU、内存的使用率

2.流量、电量的消耗情况

3.流畅度测试

4.启动速度测试

5.稳定性测试

(面试)项目的迭代周期是多久?

1.就在先前那个项目尚未呈现出成型状态的时候,实施的是大迭代方式,也就是瀑布模型,其迭代的时长周期设定为两个月。

2.之后项目成型,小迭代(敏捷开发),迭代周期为两周

项目发布策略

APP安装测试关注点

升级、卸载测试点

APP测试测什么

APP测试怎么测

PUSH消息推送

交叉测试

APP稳定性测试

介绍

稳定性测试,是要通过对应用程序长时间做无序操作,来校验应用程序会不会出现异常,像闪退crash、无响应ANR这类情况。

情况是这样的,稳定性测试的时机,是在 app 系统功能达到稳定状态之后,才会去开展稳定性测试。

具有这样一种工具,测试人员能够借助它,来模拟用户的触摸操作,模拟用户的点击操作,模拟用户的滑动操作,以及模拟系统按键等操作,这些操作事件全都是随机生成的,借此达成对APP压力的测试,以及对APP稳定性的测试。

常用参数

命令参数介绍

完整的命令:

执行adb shell命令,该命令带有参数-p,参数值为包名,还有参数-v,且是两个-v,还有参数-s,参数值为伪随机数,另外有一个双破折号,后面跟着间隔时间,以及随机事件次数,最后重定向输出到log.log文件。

示例运用:安卓调试桥Shell执行指令,以特定参数模式,针对指定应用包名,采用如此这般的详尽方式,结合特定设备标识,进行这般流程的操作,将输出结果重定向至特定路径的日志文件。

App性能测试App性能测试目标工具介绍

安装:使用下来的apk工具直接在手机或者模拟器中进行安装

权限确认:

使用:

内存测试

当使用app应用程序时,它得被加载进手机的运行内存里,如此方可正常地运作起来。

内存问题,在手机上表现

在应用程序运行期间,判断其是否存在内存问题,通过查看PSS占据实际内存的情况,若长时间处于80%以上(此情况判定为异常)。

CPU测试

app应用程序的功能被执行,都是依靠CPU来完成

CPU有问题的表现:

在实际工作测试里头,要是CPU的值长时间处于80%以上的状态,那就意味着是存在问题的。

流量测试电量消耗启动速度

安卓调试桥外壳运行时活动启动以等待状态并指定组件名称为某某商城包名下的某某商城组件名。

完成此命令的执行之后,将会得到以下三个关键指标,其单位为ms,其中重点需要予以关注的是,单位为ms。

三个指标:

流畅度

将句子改写为:在进行测试期间,尽可能地不要出现停顿,这是为由于一旦页面处于静止状体,因而FPS的数值就是0。

易错点:收集帧率需要选择测试对象

ADB常用命令ADB命令介绍连接设置(重要)

命令: adb IP地址 / adb IP地址

安装、卸载

命令:adb app包名

获取软件包名(重要)

在手机当中,区分不同应用程序借助的是包名,每个应用程序的包名各异,这类似人的身份证。

命令:adb shell | grep

扩展:

命令:adb shell pm list -s

命令:adb shell pm list -3

针对APP操作

实例操作练习:安卓调试桥外壳包管理清除指定的那个包含两个点的域名相关的应用程序包。

命令: adb shell am start 包名/界面名

命令:adb shell am force-stop 包名

如下是改写后的句子:案例进行练习,adb shell运行命令,am强制停止,针对com..malls。

获取APP日志信息(重要)

命令:adb > 路径\文件名称.log

抓取日志的步骤:

进入到操作出现问题的页面。(在首页面)

在dos窗口执行adb > log.log

操作出现问题的步骤。(点击 我的 菜单)

停止日志抓取即可。(按Ctrl+c)

扩展:如何通过日志确认问题?

通过关键字来进行定位:error,crash,ANR

获取内存、CPU数据

获取内存数据

使用场景2,借助Toal的PSS信息,去查看是哪一个程序占用的内存比较多。

案例练习:adb shell com..malls

获取CPU数据

说明:重点查看%CPU指标(表示:当前CPU使用率)

扩展1(排序):adb shell top -s (序号)

扩展2(获取指定程序):

:adb shell top | com..malls

MAC:通过adb shell执行top命令,然后从中查找包含com..malls的内容。

获取APP使用流量

指令2:adb shell ,执行 cat 操作,针对 /proc/{PID}/net/dev 这个路径。

扩展:真实手机操作:

用数据线连接手机和电脑(数据线不能充电线)

要在手机上打开USB调试,每一款手机开启USB调试的方式并非相同。

回顾_获取启动时间

命令:adb shell am start -W -n 包名/Activity 
​
案例练习:adb shell am start -W  -n com.tpshop.malls/com.tpshop.malls.SplashActivity

总结

ADB命令使用场景:

1.app测试过程中发现BUG,先清除缓存,再进行复现
    1.确认手机连接成功
        adb devices
    2.获取当前程序的包名
        adb shell dumpsys window |findstr mCurrentFocus
    3.通过包名,清除缓存
        adb shell pm clear 包名
2.app测试过程中操作某个步骤,出现闪退、白屏、崩溃,需要抓取日志
    1.确认手机连接成功
    2.抓取程序的日志
        adb logcat  > 路径\文件名称.log
3.app性能测试,获取冷启动时间
    1.确认手机连接成功
    2.获取当前程序的包名
        adb shell dumpsys window |findstr mCurrentFocus
    3.干掉程序
        adb shell am force-stop  包名
    4.获取冷启动时间
        adb shell am start -W  -n 包名/页面名称

APP稳定性测试介绍

有一种工具,这些测试人员能够借助它,去模拟用户的触摸操作,还有点击操作,以及滑动操作,甚至系统按键等操作,这些操作事件全都是随机的,通过这样做,进而达成对APP压力方面的测试,另外还有稳定性测试。

常用参数

命令参数介绍:

Monkey finished后无内容,表示稳定性通过
    CRASH:出现闪退、崩溃。稳定性测试不通过
    ANR:页面、对象出现无响应。稳定性测试不通过

-p 包名 : 指定测试的app应用程序

亚行外壳,以特定方式针对名为 com..malls 的应用程序,执行十次随机事件相关操作。

说明:模拟app操作的事件只有三类
    ACTION_DOWN:按下;
    ACTION_UP:抬起;
    ACTION_MOVE:移动

这里的“-v”,它所代表的是日志的级别,这个级别包括“-v”,还有“-v -v”,此即工作中会用到的日志级别,另外还有“-v -v -v”。

运行adb shell ,以-p参数指定com..malls ,设置日志级别为高级别 ,执行操作10次随机事件 ,其中日志级别使用-v -v表示 ,操作次数用10表示。

——间隔时间间,其作用在于,表明并且界定,设置一项操作的相距间隔的时间,此时间的度量单位是ms。

有一个操作,其中涵盖多个事件,点击属于这个操作之一,它是由按下以及抬起这两个事件共同构成的。

开启adb shell,针对com..malls进行操作,施加参数1000,设置为 -v -v 10,且每次操作之间的间隔时间设定为1s。

强调:throttle间隔的是操作,而一个操作包含多个事件
比如:
    1.触摸的操作,包含:1个"按下"事件 + 1个"抬起"事件
    2.滑动的操作,包含:1个"按下"事件 + 1个"移动"事件 + 1个"抬起"事件

-s 伪随机数(整数),它类似标记符,其作用是用来记录该次执行的随机事件,当再次使用相同数字也就是标记符时,便会执行相同的随机事件。

adb外壳,带着-p参数,用于com..malls,以-v模式,且是-v模式,再加上-- 1000,配合-s X,乘以10。

日志收集:> 路径+存放日志名称.log

面试题

如果工作中要做8个小时的稳定性测试,需要如何进行设置?

总结

APP稳定性测试什么时候做?
    
怎么做?
    
如何判断是否测试通过?
    
如何测试不通过,你会怎么办?
    

APP手机抓包

其一情况是,抓包的电脑,其二条件为,运行 app 的手机,它俩务必是同在这样一个局域网,也就是该电脑,还有一部手机,它们连接的是同一部无线路由器。

当前两个主流抓包工具:和

设置步骤

抓包工具中生成并导出证书

设置手机代理

将证书上传到手机中,并进行安装

易错点

提醒:请联系我时一定说明是从奢侈品修复培训上看到的!