Fiddler
1. 简介
- Fiddler是一款主流的抓包工具,它的原理是以 web代理服务器 的方式运行的
- 如果你想要抓取 HTPPS 数据,则需要安装证书
Fiddler在验证数据传输是否安全以及接口测试等方面有着重要的作用
2. 安装
首先,去官网下载安装包,地址:https://www.telerik.com/download/fiddler
- 下载完成后,点击安装即可
3.使用过滤器
4. 抓取HTTPS数据
- 点击菜单栏中的「Tools-Options」,打开设置中心
- 点击「HTTPS」选项卡,将「Capture HTTP CONVVECTS、Decrypt HTTPS Traffic、ingore…」勾上
- 如果弹出安装证书的选项,都要点击「是」
5. 篡改数据
- 首先登录ecshop,获取到登录的url:http://120.78.74.14/ecshop/user.php
- 按 ctrl+x 清除掉历史会话
- 进入ecshop登录页面
- 在Fiddler底部命令行中设置断点:bpu http://120.78.74.14/ecshop/user.php,按下回车
- 在浏览器中输入ecshop的账号和密码,点击登录按钮
- 登录会停止,因为设置了断点
- 在Fiddler中找到 红色T标志 的会话,将其中的密码修改成错误的密码,点击 run to complection 按钮
- 回到浏览器查看,登录失败,提示用户名或者密码错误
取消已设置的断点是bpu
6. 抓取手机端数据
前提:手机与电脑必须在同一网络下
- 模拟器,可以直连电脑,因为与电脑共享网络
- 真实手机,需要用电脑共享WiFi,用手机连接该WiFi(同一路由器亦可)
步骤:
- Fiddler中勾选允许远程设备连接,重启Fiddler
- 查看电脑ip
- 手机端设置中,修改wifi属性,把代理服务器设为手动,服务器ip设置为电脑ip,端口是8888
- 手机端浏览器中输入电脑ip:8888端口,安装Fiddler证书(这一步骤不是必须的,如果要抓取HTTPS数据就需要安装)
手机端访问网页或者打开程序进行操作,在Fiddler中即看到抓取到的数据
7. 弱网测试
为什么要做弱网测试?
一款优秀的APP应该针对不同网络情况都需要保证不会 崩溃,同时尽可能做到弱网情况下也能功能正常使用,或者使用体验达到最佳。弱网测试可以测试APP的「加载时间、可用性、稳定性和健壮性」。
使用Fiddler进行弱网测试确保网络正常,能够打开网页
- 在Fiddler中修改 customize rule,ctrl+f 查找 delay 关键字,修改请求和响应的延迟时间,然后保存
- 在 performance 中勾选 Simulate Modem Speeds ,启用限速规则
- 在手机端中运行APP,查看APP在弱网条件下的运行情况
附常见的网络环境延时参考:
8Kbit = 1KB
1024Kbit = 128KB
2G
上行:2.7Kb 延迟:1 / (2.7 / 8) * 1000 = 2960ms
下行:9.5K 延迟:1 / (9.5 / 8) * 1000 = 840ms
3G
上行:1M 延迟:1 / ((1 * 1024) / 8) * 1000 = 8ms
下行:3M 延迟:1 / ((3 * 1024) / 8) * 1000 = 3ms
4G
上行:50M 延迟: 1 / ((50 * 1024) / 8) * 1000 = 0.2ms
Monkey
1. 简介
- Monkey是一款 稳定性测试 工具,Monkey(猴子测试),也叫 随机测试工具
- Monkey是 Android SDK 中的一个命令行工具
- Mnokey测试的对象是:APP
- Monkey测试的时间点:系统测试之后,验收测试之前
- Monkey测试的原理是:通过工具持续不断地(**724)向设备发送 随机 APP 操作(滑动,输入,点击…),验证APP是否会出现稳定性的问题(崩溃,闪退,卡顿… )
如果是 ios,那么可以使用 xcode+ios Monkey 进行稳定性测试
2. 安装Monkey
2.1 安装Java
双击安装包安装即可
配置 java 环境变量
将 android-sdk-windows压缩包解压至 C 盘的根目录
- 将 C:\android-sdk-windows\tools;C:\android-sdk-windows\platform-tools添加至环境变量
在命令中输入:adb version,如果能够看到版本号即表示安装成功
3. 准备APP与手机
3.1 连接模拟器
启动模拟器
- 在命令行输入: adb connect 127.0.0.1:62001,将 adb 连上 模拟器
注意:如果是真实手机
- 首先打开手机设置 开发者选项-USB调试 开关
- 用数据线插上电脑
电脑会自动安装驱动,然后就连接成功了。(如果驱动安装失败,下载一个豌豆荚等助手,自动重新安装驱动)
3.2 安装APP
在手机应用市场(应用宝或其他),下载需要测试APP安装包
- 将安装包复制到 C:\android-sdk-windows\platform-tools目录下
在 platfrom-tools目录下打开命令窗口,输入:adb install apk名字 安装APP到模拟器
3.3 找到程序包名
在命令行中输入:adb shell,进入adb的命令模式
- 输入:logcat | grep START,查看应用启动日志
- 在模拟器中启动今日头条
- 回到命令行中找到最新刷新的一行日志中的 cmp=xxx,xxx 就是程序的包名(鼠标右键选择标记,选中需要的部分按下回车键即可复制)
- 如:com.ss.android.article.news(今日头条包名)
4. 执行测试
4.1 基础版
在命令行输入 ```bash adb shell monkey -p com.ss.android.article.news -v 2000
adb shell monkey : 使用monkey工具 -p : 后面指定程序包名 -v : 日志级别,-v -v -v 是最详细的日志级别 2000 : 操作次数
<a name="a9598e9a"></a>
### 4.2 进阶版
在命令输入:
```bash
adb shell monkey -p com.ss.android.article.news -s 123 --throttle 500 --ignore-crashes --ignore-security-exceptions --ignore-timeouts -v -v -v 200 > D:\201919.log
adb shell monkey : 使用monkey工具
-p : 后面指定程序包名
-s : 指定一个标志,下一次测试时使用同样的标志保持操作顺序(重现问题场景)
--throttle 500 :操作间隔,单位是ms(类似思考时间)
--ignore-crashes : 忽略崩溃问题
--ignore-security-exceptions : 忽略安全异常问题
--ignore-timeouts : 忽略超时
-v -v -v: 日志级别,-v -v -v 是最详细的日志级别
200 : 操作次数
> D:\201919.log : 将日志信息写入到指定的文件中去
5. 分析日志
在日志文件中搜索以下关键字:
- crash: 崩溃,闪退
- exception: 异常问题
- ANR: 无响应问题(answer no response)
如果发现了稳定性问题,提交相对的 bug 以及日志给开发人员进行分析,修复。
测试人员的主要工作是协助开发修复。
Perfdog
1. 简介
-
2. 安装
-
3. 连接手机
IOS
1. 用数据线将手机连接至电脑
2. 下载并打开 爱思助手,连接上爱思助手(期间会自动下载iTunes等之类的工具)
3. 在perfdog中选择iphone设备即可
Android
1. 用数据线将手机连接至电脑
2. 下载并打开 360手机助手,连接上该助手(连接期间会有连接提示,按照助手连接提示操作)
3. 在perfdog中选择Android设备即可
在真实的测试场景中,需要专门设计一些性能场景。比如说:登录,浏览文字文章,浏览视频… …
4. 执行测试
- 左上角选择设备
- 选择被测应用
- 点击右下角加号,确认需要抓取哪些性能数据(一般包含 FPS、CPU使用率、内存使用率、电池温度、电量消耗、网络情况等)
- 点击右上角开始按钮,开始抓取性能数据,同时按照提前设计好的性能场景对APP进行操作
- 操作过程中,可以点击右上角的定位按钮,对操作场景打标签进行区分
- 操作完成后,点击右上角完成按钮,停止抓取,并将数据上传至云端
5. 分析性能数据
分析APP的性能数据时,一定要考虑不同的机型,配置,不同系统版本,不同APP类型… … 具体场景具体分析
- cpu占用率:日常生活类app(爱贝云)不超过 30-40%,如果是大型app(拍照,王者荣耀),建议不超过 70-80%
- 内存占用率:一般情况下不超过 20-30%,大型app除外,还要考虑手机自身的内存容量
- 流量:根据使用场景分析,比如阅读文字资讯与看视频的流量是不一样的
- FPS:一般建议在60左右,稳定在这个值即可,日常生活类软件可以稍微低一点
- 电量: 具体情况具体分析(使用情况,使用什么类型app…)
- 温度: 具体情况具体分析,一般不超过45°C
附游戏APP性能指标分析图
附注
1. 使用adb获取app运行日志
- 在命令行执行:adb logcat -b main -v time>app.log
- 会在adb目录下生成app的运行日志文件