性能测试
移动产品的功能测试,以及功能测试的自动化,可以验证被测试产品功能层面的正确性和可用性
适用情况:
App 使用的时候,卡顿
查询信息 或者 执行一个操作时, 服务端需要好久,才能响应
当 Application 使用高峰期, application 频繁报错
App 使用一段时间后,内存占用过高,甚至闪退
手机访问应用的界面,打开非常缓慢
为了避免上面的风险, 通常,会在测试阶段,进行 性能测试,获取测试数据,这样便于对性能量化分析,也便于该收的对比
性能测试的开展和 被测系统的特点,密切相关,针对移动互联网产品的构成,性能可以分为 前段性能和后台接口性能
前端 : Web 页面 和原生App code [ android && ios ]
一、Web 前端性能测试
1)M 站, 输入同一地址,按照 PC or Mobile 返回不同的内容
通过 Http 的 User-Agent [ Http Header] 字段 , 以及 Http 协议的302 响应码和对应的跳转机制
2)很多APP 都是混合方式, 既有原生的代码,也有内嵌的网页
PC browser -> Mobile browser | App 内嵌 browser [ eg : WebView ]
HTTPS = HTTP + SSL [ 安全套接口层 ]
URI : Uniform Resource Identifiers
HTTP 请求方法:
GET、POST、PUT、DELETE、【前4个常用】 HEAD、TRACE、CONNECT、OPTOINS
HTTP-Version
Status-Code :
1XX : tip info
2XX : success
3XX : redirect
4XX : client error
5XX : server error
eg :
200 : OK
400 : Bad Request ,
401 : Unauthorized
403 : Forbidden
404 : Not Found
500 : Internal Server Error
503 : Server Unavailable , 服务器当前不能处理client request, 一段时间后,可能恢复正常
【 cdn 】
Accept-Encoding ,标识,是否使用 gzip 压缩, 压缩后缩短为 原来的 1/3 , 客户端,可以更快的获取也卖弄内容,进而缩短页面打开时间, 压缩是双向的, 客户端和 服务端都需要开启
Web 前端性能测试方法
Http 前端常用的性能测试工具 : Fidder , YSlow , HttpWatch , Firebug
常用Web 性能测试工具:
在线工具 WebPageTest
Chrome PC / 手机远程测试 调用
chrome://inspect/#devices
二 APP 端性能测试
内存分析, App 内嵌Web 组件的性能分析
1 内存分析
首先要 了解 JVM 垃圾回收机制
垃圾回收 主要包括
静态变量 、 栈上指向的 堆内存对象、寄存器、Other
在一些情况下,垃圾回收线程 也会压缩掉 内存碎片, 内存分配器 记录空闲内存开始的地方, 接下来按顺序分配内存
2 Java 的几种 引用
强引用
弱引用
软引用
其他
3 Android 内存占用分析实践
MAT : 强大的head dump 内存分析工具
Eclipse 的 DDMS 、 Android Studio 的 DDMS 都能进行抓取工作
run MemoryAnalyzer ,open 抓取的.hprof 文件
Care:
大对象常驻内存 : open Dominator Tree for entire heap
内存泄漏
4 IOS 内存问题分析
IOS 的内存管理 使用了 引用计数器
ARC :Automatic Reference Counting : 主要help developer release space
但是并不代表,使用了 ARC的模式开发的APP,就没有 内存 泄漏的问题
5 App 内嵌 web 组件的 性能分析
1) Android webView 性能分析
2) IOS webiew 性能分析
ios 的 webview 内部引擎和 safari 不同, 由于 ios 的webview 不支持javaScript 加速,所以性能会差很多
三、 后台服务性能测试
性能测试目的: 量化地 评估 被测系统的响应时间和 容量等维度的指标
根据侧重点,可以分为
负载Load测试:
压力Press测试:
耐久性Endurance测试:
可扩展性Scalability测试:
基准Benchmark测试: tCP && SPEC
2 模拟用户请求
JMeter
Think time
构建模拟用户组
测试流量的设定
选择数据样本,并发量