大多数用户期望网站加载时间3秒内
前端常见的性能优化点
1.静态资源增加缓存
2.静态资源使用CDN和独立域名
3.js压缩,并去掉存在的重复请求
4.js位置后移
5.css依赖减少,同时指定;
6.减少Banner图片个数,同时减小大小,进行压缩
7.异步接口请求优化,合并和减少
8.检查页面请求失败和挑战的外部资源
9.优化外部依赖接口请求
10.减少页面请求个数,减小js和css的加载
性能测试流程
测试需求采集--性能方案评估--计划制定--测试方案编写--方案评审--开发脚本--数据准备--环境准备-执行测试-性能调优--编写报告--知识沉淀
性能测试指标
pv:页面浏览量或点击量,用户每次刷新即被计算一次,我们可以认为,用户的一次刷新,给服务器造成了一次请求。
uv:访问网站的一台电脑客户端为一个访客,0点-24点内相同的客户端只被计算一次
TPS:每秒系统能够处理的交易或事物的数量,它是衡量系统处理能力的重要指标
RT:响应时间是指从客户端发送一个请求开始计时,到客户端接收到从服务器返回的响应结果结束所经历的时间
vu:模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里。一般性能测试过程中,通俗称为并发用户数。
TPS波动,系统性能依赖特定的硬件、软件代码、应用服务、网络资源等,所以在性能场景执行期间,TPS可能会表现为稳定,或者波动,抑或遵循一定的上升或下降趋势。我们用TPS波动系数来记录这个指标值
cpu:性能测试场景运行的这个时间段内,应用服务系统的cpu资源占用率。cpu资源是判断系统处理能力以及应用运行是否稳定的重要参数。
load:系统正在干活的多少的度量,队列长度。系统平均负载,被定义为在特定时间间隔内运行队列中的平均进程数
I/O:可分为磁盘IO和网卡IO
jvm:java虚拟机,它拥有自己的处理器、堆栈、寄存器等,还有自己相应的指令系统。java应用运行在jvm上面
GC:是一种自动内存管理程序,它主要的职责是分配内存、保证被引用的对象始终在内存中、把不被应用的对象从内存中释放。FGC会引起jvm挂起
网速:网络中的数据传输速率,一般以Byte/s为单位。通过ping延时来反映网速
流量:性能测试中,一般指单位时间内流经网卡的总流量。分为inbound和outbound,一般以KB为单位。
测试方法
测试类型
1.性能测试:测试被测系统是否满足预期性能目标
2.负载测试:测试被测系统,在服务器安全范围内的最大负载值
3.压力测试:测试被测系统,在超过服务器安全范围所能承受的最大压力值
4.稳定性测试:测试被测系统在长时间的压力下的稳定性
通过标准
类别 | 判断维度 | 不通过 | 通过 | 备注 |
服务器性能 | 超时概率 | 大于万分之一 | 小于万分之一 | 1.页面大小包括js/css图片等资源 2.最佳情况下,页面下载时间小于2s |
错误概率 | 大于万分之一 | 小于万分之一 | ||
TPS | 小于期望高峰值 | 大于期望高峰值 | ||
TPS波动范围 | 大于8% | 小于8% | ||
cpu利用率 | 大于75% | 小于75% | ||
load | 平均每核cpu的load大于1 | 平均每核cpu的load小于1 | ||
jvm内存使用率 | 大于80% | 小于80% | ||
FullGC | 平均小于1小时1次 | 平均大于1小时1次 | ||
前端性能 | YSlow和Dynatrace | 暂定(分数<80B) | 暂定(分数>80B) | |
用户体验性能 | 页面大小 | 页面大于800k | 页面小于800k | |
页面响应 | 首次加载>1s DOM Ready>2s Full Load>2s | 首次加载<1s DOM Ready<2s Full Load<2s |
性能测试平台PTS架构
http://pts.aliyun.com
淘测试
http://www.taobaotest.com/