性能指标详细测试步骤参考
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
性能指标详细步骤参考使用说明
文档更改记录
性能指标详细步骤参考
目录
一、内存泄露 (3)
二、是否存在资源的重复拉取 (7)
三、无缓存/首屏总流量小于200K (7)
四、抓包检查(js/css)请求头不能带cookie,检查HTTP请求头有Accept-Encoding: gzip, deflate (9)
五、js/css/html代码需要进行压缩 (10)
六、控制图片大小 (11)
七、避免302跳转超过2次 (11)
八、页面加载完毕(可交互) (12)
九、tcpdump抓包 (13)
前提:Android测试机型为红米1,iOS测试进行为iPhone 4s iOS7
Android手机需root ,ios需越狱
一、内存泄露
Android\iOS 使用top命令来检查各个场景下的内存变化情况
1、Android内存抓取步骤
准备:电脑需安装android adb并将adb的目录加入到系统环境变量中
通过电脑命令窗口来查看内存变化状况,并记录内存数值
步骤:
1、adb devices 查看手机设备是否连接上,如下图所示:
adb root 命令可以让已经root的手机进入到adb的root状态
adb shell 命令进入手机的linux内核,出现“#”代表root权限,出现“$”代表普通用户权限
2、用top命令查看内存
如下图:
抓取特定的进程内存变化可以用命令:
adb shell top -d 1 –n 4 | find "进程名"
-d 指定刷新间隔时间
-n 指定刷新次数后退出
以qq的web进程为例:
adb shell top -d 1 -n 4 | find "com.tencent.mobileqq:web"
想要将抓取的内容保存到本地可以用如下命令
adb shell top -d 1 -n 4 | find "com.tencent.mobileqq:web" >>C:\Users\58\Desktop\log.txt
log.txt内容如下:
我们只需要记录”RSS实际使用内存”这列的数据,将他画成折线图,分析内存波动状态,就是上图中画红圈部分数值,。
分析内存直线图:一般抓取每次抓取200—300个数据,抓取3-5次,然后查看内存波动情况,在一定范围内的上下起伏波动证明内存没有泄露,如果出现内存数值持续增长,没有
回落现象说明可能存在内存泄露。
2、ios内存抓取步骤
准备:电脑需安装itools, SecureCRSecureFXPortable,ios越狱手机安装Cydia且在Cydia中搜索安装OpenSSH。
1、手机连接电脑,并打开itools
2、通过itools打通与手机的ssh通道
3、记住上面的连接地址、用户名及密码(一般默认是地址:127.0.0.1 用户名:root 密码:
alpine)
4、通过连接远程的机器来进入ios内核(可用SecureCRSecureFXPortable、putty等工具连接)
如下:
5、之后通过top命令来抓取内存变化,并绘制成直线图分析
以下以QQ为例:
ios
使用top命令收集内存数据:top -s 3 -l 20 | grep QQ > QQ.log
-s:指定刷新时间间隔
-l:指定次数
top命令:top命令可以获取到系统所有进程占用内存、cpu等状态,我们只需要关注RSIZE即实际占用内存值,如下:
抓取QQ内存变化:top -s 3 -l 20 | grep QQ
抓取QQ内存变化并写入文件中:top -s 3 -l 20 | grep QQ > QQ.log
抓取到的内存数据同上面android内存数据一样处理、分析。
6、抓取完后关闭ssh通道,只需在打通操作的位置再次点击itools上的ssh通道即可关闭。
二、是否存在资源的重复拉取
步骤:
1、打开fiddler
2、打开需要测试的页面
3、复制fiddler中抓取的全部资源(一个页面求情的所有资源)到excel
4、通过excel排重,获取的资源中不能有重复项
审查结果:如上图就存在重复值,不合格
三、无缓存/首屏总流量小于200K
步骤:
1、清除手机相应软件缓存
2、打开fiddler/wireshark
3、打开页面
Fiddler中流量就是Bytes Sent + Bytes Received Wireshark抓取流量:
图上红圈内的就是流量。
要求抓包得到的流量小于200k
四、抓包检查(js/css)请求头不能带cookie,检查HTTP请求头有Accept-Encoding: gzip, deflate
Cookie:
1、打开fiddler
2、访问网页,通过fiddler抓取所有资源
3、挨个查看js/css中是否存在cookie
如下图所示为没有cookie的js
如下图所示为有cookie的js,不符合要求
特别说明:
部分统计JS需要cookie请与开发及产品沟通,沟通通过后说明原因,可以通过。
HTTP请求有Accept-Encoding: gzip, deflate:
1、打开fiddler
2、访问网页,通过fiddler抓取所有资源
3、挨个查看HTTP请求头有Accept-Encoding: gzip, deflate标志
效果图如下:
五、js/css/html代码需要进行压缩
1、打开fiddler
2、访问网页
3、查看页面源码(可通过fiddler抓取的包来获取页面所有的js、html、css,之后通过
在fiddler中copy url在浏览器中访问源码)
效果图对比:
未压缩的页面
压缩过的页面
六、控制图片大小
要求:单张图片小于60K(图片包括图片及图标ico)
1、打开fiddler
2、访问网页
3、通过fiddler来查看所有的图片大小
4、在fiddler中选中图片,然后如下图在标红处选择,就可以看到单张图片大小
七、避免302跳转超过2次
302:
1、打开fiddler
2、访问网页
3、在fiddler中查看状态吗
要求:用户一次操作,页面跳转返回码302的请求小于2个
八、页面加载完毕(可交互)
要求:Wifi下时间小于3s,2g下小于10s
工具:
recorder这个是ios的录屏软件(安装到手机端使用的,ios专用)android手机scr录屏录像(安装到手机端使用的、android专用)KMPlayer (播放器,可精确到毫秒)
itools 电脑端软件(可对ios、及android都进行录屏)
这里主要介绍itools 及KMPlayer的使用:
itools:录制实时桌面即录屏,录制好后用KMPlayer分析
KMPlayer:
通过如下操作出现“跳转到时间”小窗口,在小窗口中时间可以精确到毫秒。
页面加载时间= 页面加载完的时间- 点击链接时的时间
因此需要通过小窗口的暂停按钮来记录以上时间点。
一般每个页面需在无缓存条件下记录最少5遍左右数据,之后求平均值。
(ios下2g、android 下2g、ios下wifi、android下wifi各5遍)
九、tcpdump抓包
tcpdump命令:
android 抓包相关命令:
1、adb devices 查看设备是否连上
2、adb root 启动root模式
3、adb push D:\性能测试\tcpdump\tcpdump/data/local/tcpdump将本地的tcpdump文件copy到手机
4、adb shell进入手机内核
5、cd /data/local/
6、chmod 755 tcpdump修改tcpdump权限
7、exit
8、adb shell data/local/tcpdump -p -vv -s 0 -w /data/capture.pcap通过tcpdump抓包
9、adb pull /data/capture.pcap C:\Users\58\Desktop\capture.pcap 将生成的保存在手机里的文件copy 到本地
抓包步骤:
1、手机连接电脑查看手机是否连接上adb devices
2、将本地tcpdump文件copy到手机
adb push D:\性能测试\tcpdump\tcpdump/data/local/tcpdump
3、修改tcpdump权限
chmod 755 tcpdump
4、adb shell data/local/tcpdump -p -vv -s 0 -w /data/capture.pcap
抓到的包这会保存到手机中的,如下
5、将手机中抓到的包,传到本地
adb pull /data/capture.pcap C:\Users\58\Desktop\capture.pcap
ios:
ios用tcpdump抓包需要有mac本
通过mac及tcpdump抓包相关命令:
rvictl -s 7f876f4526dd162912dc257f02f47706c2110225
sudo tcpdump -i rvi0 -p -vv -s 0 -w zhengzu.pcap
rvictl –x7f876f4526dd162912dc257f02f47706c2110225
举例:
步骤:
前提:mac本中有tcpdump文件
1、获取ios的设备标志号
ios手机连接电脑,打开itools,点击主面板中的“更多详情”,弹出的小窗口中有“设备标识”,如下图所示
2、在mac的命令窗口通过命令:rvictl -s “设备标识”建立虚拟网卡
命令:rvictl -s 3c434cfff44beaab2135ec09c03da7c877c2cb4e
如果创建成功会在命令窗口出现success标识并显示创建成功的虚拟网卡ID号,失败会出现failure 标识
3、创建成功后执tcpdump命令:sudo tcpdump -i “虚拟网卡ID号”-p -vv -s 0 -w “名字”.pcap
如:sudo tcpdump -i rvi0 -p -vv -s 0 -w zhengzu.pcap
其中:rvi0 是虚拟网卡ID号,之后就通过该网卡开始监听手机的网络信息,开始抓包
4、抓包完成后通过命令:rvictl –x“设备标识”关闭这个虚拟网卡。
例:rvictl –x3c434cfff44beaab2135ec09c03da7c877c2cb4e
87ee1650ec92e2c8f1804000ca6c1c4320c851a1。