APP测试之Fiddler-抓取数据(Https)与伪造服务器响应

本文详细介绍了移动App的功能测试思路,包括通用测试、特定功能测试和用户场景测试等。同时,讲解了使用Fiddler进行抓包配置,模拟APP服务器响应数据,以及捕获HTTPS协议包的步骤。通过实例展示了如何利用Fiddler进行深入的App性能和异常测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、测试思路

1. 通用测试思路

笔者认为对Web还是App通常应先按照测试类型来进行考虑

  • 功能测试:能不能用

    以某商品网站的搜索功能为例,一般遵循如下功能测试思路:

    • 单功能测试:考虑单个关键字和多个关键字等;

    • 功能交互测试:考虑搜索已下架的商品、搜索已删除的商品等;

    • 用户场景测试:考虑在登录之后的搜索,未登录时候的搜索等。

  • 性能测试:用起来快不快。负载测试、压力测试、容量测试等,如通过Emmagee、Solopi、Monkey等工具测试各项App性能指标,包括启动时间、存储空间、CPU/GPU占用、流量/电量消耗等

  • 兼容测试:兼不兼容各种环境。如对app,通过阿里云、腾讯云、华为云等云测平台,测试操作系统和手机机型兼容性

  • 网络测试:如通过NEWT、ATC、Qnet等工具,进行移动(2G、3G、4G、5G)和无线(WIFI)的不同网络测试,弱网测试,无网测试;还有网络切换的测试

  • 安装/卸载测试:对App不同方式的安装、启动检查、升级/卸载测试

  • 用户体验测试:操作是否方便,界面是否美观

  • 异常测试:App遇到断网、断电、闪退、收到异常数据

2. 移动APP功能测试思路

以钉钉中发送消息功能为例:

  • 单功能测试:考虑发送文本、图片、语音、视频消息等;

  • 功能交互测试

    1)与手机本身功能的交互,比如通话、短信、闹钟等。在编辑待发送消息时接听电话、拒接电话等;

    2)与手机助手App功能的交互,比如限制低电量时不允许使用网络,此时发送消息;

    3)与App本身功能的交互,给已拉黑自己的好友发消息、给已删除自己的好友发消息、给被封号的好友发消息等;

  • 用户场景测试,比如连续发送消息、撤回已发送消息再发送等;

  • 特殊测试点:考虑横竖屏、分屏;通知栏;长按、滑屏、双击等对应的功能操作。

二、Fiddler 抓包APP并模拟APP服务器响应数据

​ 移动App测试,仅通过界面上测试往往不够,还经常需要使用抓包工具,抓取App和Server之间数据的交互,更为深入的测试。常见的抓包工具有 Fiddler(windows)、Charles(windows、mac)。

1. Fiddler PC端配置

  • Fiddler -> Tools -> Options -> Connections 中,设置【允许远程计算机(包括真机/模拟器)连接】,默认的监听端口是 8888

image-20200906144344912

  • 访问该主机 IP 的 Fiddler 默认端口,如 http://192.168.137.1:8888/ 或访问 http://localhost:8888 ,出现以下内容,即验证 Fiddler 代理服务已启动

    image-20200906150150206

2. 模拟器端配置

image-20200906151608870

  • adb (Android debug bridge) 路径,注册到环境变量(用户或系统级别均可)

image-20200906151209367

  • 启动模拟器后,运行 adb devices 验证模拟器连接正常,adb install 安装待测试应用 ECMoblie_v3.2.apk

    image-20200906152751767

3. Inspectors模块查看捕获的抓包信息

使用 Fiddler - Inspectors 模块 可以用多种不同格式来查看请求数据、响应数据的信息。
查看所连接设备app的抓包,首先需要设置【安卓端模拟器网络代理】和【PC端Fiddler代理】保持一致。

  • 模拟器上设置–修改网络

    image-20200906153230735

  • 模拟器网络–高级选项,设置 Fiddler 代理 192.168.137.1:8888与前面连接的PC主机一致

image-20200906153446620

  • 有时由于测试App版本过旧问题,App访问服务器不成功。可在Fiddler -> Tools -> Options -> Hosts 设置 App 所访问服务器 shop.ecmobile.cn 和所测试服务器 118.25.179.224 的映射关系

    image-20200906154149125

  • 重启被测试App ECMoblie_v3.2.apk 即可正常访问App的服务器网络

    同时在 Filters过滤器 中勾选 Use Filters 并选择 show only the following hosts 可只查看指定服务器的抓包,如 shop.ecmobile.cn;cloud.ecmobile.cn

    image-20200906155407417

  • 如图是Inspectors 模块请求部分的 Headers(请求头),JSON(响应数据)

    image-20200906155958102

4. AutoResponder模块模拟响应数据测试app

AutoResponder 模块可以快速模拟各种情况的数据,给app发送伪造的数据测试不同情况下app的响应

以修改待付款数字1为1000为例:

  • 注册一个账户登录并购买一个商品不付款

    image-20200906161018006

  • 在 Fiddler 中能查到对应操作的抓包列表

    image-20200906161540337

  • 找到购物车对应的抓包信息,在 Inspector 模块下查看 Headers (请求信息头) 和 JSON (响应数据)

    image-20200906173450428

  • 在 Fiddler 抓包列表选中需要篡改的记录 ,右键 Save 为完整的响应数据 Cui_My_Response.txt便于篡改

    image-20200906180951056

  • 将保存后的响应数据 Cui_My_Response.txt 设置为响应规则 image-20200906181225137

  • 选择要修改的抓包项,找到响应数据中的 JSON,发现对应的待付款字段是 await_pay=0image-20200906180745860

  • 修改 Cui_My_Response.txt 里 “await_pay”:“0” 为 “await_pay”:“1000”image-20200906181410408

  • 模拟器App个人中心中验证结果已经变成1000image-20200906182733196

三、Fiddler 捕获 HTTPS 协议包

1. PC端安装 Fiddler 证书

  • Fiddler -> Tools -> Options -> HTTPS 勾选 Capture HTTPS CONNECTsDecrypt HTTPS traffic,允许捕获 HTTPS 连接,并破解 HTTPS

    image-20200906164457229

  • 同意安装 Fiddler 根证书

image-20200906164913400

  • 信任证书成功

image-20200906164938945

  • Options -> HTTPS -> ActionsOpen Windows Certificate Manager打开 certmgr 证书管理中心

image-20200906164629720

  • 查看已安装的 DO_NOT_TRUST_FiddlerRoot certificate 证书

image-20200906165032733

2. 模拟器/手机端安装 Fiddler 证书

  • 模拟器/手机端浏览器访问主机IP的8888端口 http://192.168.137.1:8888/ 下载 FiddlerRoot certificate 安装

image-20200906165637760

  • 安装证书可命名为 Fiddler

image-20200906165850929

  • 访问 HTTPS 协议站点如 https://www.baidu.com,用 Fiddler -> Inspectors 查看返回的 https 响应信息

    image-20200906171123449

四、原创手动码字,喜欢就点赞收藏哦

博主优快云@崔同学原创手动码字,喜欢记得点赞收藏哦 😃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值