1页面性能测试概述

页面性能测试则是针对于页面性能优化而开展的一种性能测试,目的是对Web系统的页面进行测试以确认系统页面是否会影响系统的性能并为页面的优化提供依据与建议,最终提升系统的整体性能表现,提高用户体验满意度。他的关注点是在与页面,不在于后端。有别于我们通常说的性能测试。

相对于C/S架构的应用系统,Web应用系统所有数据都需要从服务器端下载,虽然浏览器有缓存机制,但客户每次访问仍然需要下载大量

很多人觉得如果有大量服务器做支撑,就不会存在性能问题,其实是不对的,当硬件达到一定水准后提升硬件已无作用。举个例子,当一个页面中包含几百个请求,页面中没有经过优化的javaScript文件、CSS 文件与图片件大小达到10MB,即使当前只有一个用户在访问该系统,页面的访问速度也会慢得惊人,纵使增加再多的服务器也不见得会有明显的性能提升。

2提高页面性能的一般方法

2.1减少请求和响应的往返次数

HTTP缓存是最好的减少客户端服务器端往返次数的办法。缓存提供了提供一种机制来保证客户端或者代理能够存储一些东西,而这些东西将会在稍后的HTTP 响应中用到的。(即第一次请求了,到了客户端,缓存起来,下次如果页面还要这个JS文件或者CSS文件啥的,就不要到服务器端去取下来了,但是还是要去服务器上去访问一次,因为请求要对比ETag值。

2.2减少请求和响应的往返字节大小

l 使用更少的图画

l 将所有的CSS浓缩到一个CSS文件中

l 将所有的脚本浓缩到一个JS文件中

l 简化你的页时间

l 使用HTTP压缩

PS:貌似太理想化了。。。。。

2.3太多了yahoo的22条规则,值的参考

3页面性能测试的环境搭建

环境为:Yslow+ShowSlow+WAMP(VertrigoServ)

步骤如下:

n 创建一个db为showslow

n 导入下载的ShowSlow中的tables.sql

n 把下载的ShowSlow放到www目录下,修改config.php中的

$db = 'showslow';

$user = 'root';

$pass = '123456'; //密码根据你的情况修改。

n 打开ff配置about:config

过滤器:yslow

修改下面三项内容:

extensions.yslow.beaconUrl=

http://localhost.com/showslow/beacon/yslow/

extensions.yslow.beaconInfo = grade

extensions.yslow.optinBeacon = true

n 重新启动浏览器:在浏览器内输入http://localhost/showslow/

n 如果页面上没有任何错误提示的话,恭喜你,你太幸运了。

n 启动ff,进入ShowSlow,然后在打开要测试的页面启动yslow

4测试范围

对线上的部分页面进行测试,如下:

www侧:首页、单品页、我的订单页

seller侧:订单管理

5 测试结果与分析

5.1 www侧:首页

测试时间:2011-9-30

地点:公司

5.1.1 减少http request

8个外部js

4个外部css

10个外部background images

不知是否可以使用CSS Sprites整合图片、合并CSS文件、合并JS文件。

5.1.2 加入CDN

html.xxx.com

www.xxx.com

log.xxx.com

img.xxx.com

5.1.3 设置过期的http header

可以将脚本, 样式表, 图片, Flash等缓存在浏览器的Cache中,不过也有一定的风险,毕竟js和css有一定的逻辑

具体列表见 首页-没有设置过期的http header的东东.txt

5.1.4 对页面组件进行gzip压缩

首页中有以下东东,不知是否可以进行压缩处理

· http://html.xxx.com/html/css/common0601.css

· http://html.xxx.com/html/css/header0811.css

· http://html.xxx.com/html/css/index0902.css

· http://www.xxx.com/css/jquery.autocomplete.css

· http://html.xxx.com/html/js/specl2.0.5.js

· http://html.xxx.com/html/js/ajax.js

· http://html.xxx.com/html/js/specl-utils.js

· http://html.xxx.com/html/js/jquery.autocomplete.js

PS:这个是一个在线的压缩工具,个人感觉不错,能给出比较好的压缩信息与参数,方便调试,地址:http://tool.lanrentuku.com/csszip/

5.1.5 js的位置

为了实现最大的下载并行,页面加载初期做的事,最好只有HTML的下载,CSS的下载,JS的下载等,下载完成后再去实现页面渲染,JS脚本运行等。所以一般的处理办法还是页面头部引入JS链接,页面底部执行JS脚本程序。

下面的链接,我试了下,除了第一个,剩余的都可以放到底部

· http://www.xx.com/js/jquery.js

· http://html.xx.com/html/js/specl2.0.5.js

· http://html.xxx.com/html/js/ajax.js

· http://html.xxx.com/html/js/specl-utils.js

5.1.6 设置ajax缓存

虽然ajax是异步的,但不能保证不会等待异步的这段时间,不过为避免重复的ajax请求,加上缓存也是件好事吧J

首页测试的时候只有一个地址,如下

http://www.xxx.com/ajax/loginInfoAjax.jhtml?jsoncallback=jsonp1317353338559

我看这个貌似是会员的一些信息,包括购物车中商品数,用户名、状态等

5.1.7 减少DOM元素的数量

首页中差不多有1584个DOM elements

是否可以优化下首页结构,毕竟首页是门帘,用户体验也很重要的!

5.1.8 尽量使用与域名无关的cookie

所谓的 cookie-free domains 就是在浏览器发送静态内容的请求时不会发送cookies 的域名。首页中有如下:

· http://www.xxx.com/js/100023.js

· http://html.xxx.com/html/images/header0811/bor.gif

· http://html.xxx.com/html/images/header0811/menu.png

· http://html.xxx.com/html/index0601/indexbg.png

· http://html.xxx.com/html/index0601/boder.gif

· http://html.xxx.com/html/index0601/h2bg.gif

· http://html.xxx.com/html/index0601/floorico.png

· http://html.xxx.com/html/index0601/botdy.gif

我看这里面有些图片一般是不会改变的,是否考虑放到静态服务器上,以减少cookie的反复传输对主域名的影响。

5.1.9 简单的统计数据

5.2 www侧:单品页

测试单品页为:

http://www.xxx.com/goods/3B2BDB2CF26A4641_453v4563.html

测试时间:2011-9-30

地点:公司

5.2.1减少http request

有21个外部js

6个外部css

12个外部background images

不知是否可以使用CSS Sprites整合图片、合并CSS文件、合并JS文件不知是否可以使用CSS Sprites整合图片、合并CSS文件、合并JS文件

5.2.2设置过期的http header

可以将脚本, 样式表, 图片, Flash等缓存在浏览器的Cache中,不过也有一定的风险,毕竟js和css有一定的逻辑。

详细的URL见 单品页-没有设置过期的http header.txt

5.2.3对页面组件进行gzip压缩

单品页中有以下东东,不知是否可以进行压缩处理

· http://www.xxx.com/css/jquery.autocomplete.css

· http://html.xxx.com/html/css/common0601.css

· http://html.xxx.com/html/css/header0811.css

· http://html.xxx.com/html/css/details0629.css

· http://html.xxx.com/im/css/webIM.css

· http://html.xxx.com/html/js/jquery.autocomplete.js

· http://html.xxx.com/html/js/search.js

· http://html.xxx.com/html/js/specl2.0.js

· http://html.xxx.com/im/cdjs/jquery.easydrag.js

· http://html.xxx.com/im/cdjs/jquery.bgiframe.js

· http://html.xxx.com/im/cdjs/plus-utility.js

· http://html.xxx.com/im/js/chat.js

· http://html.xxx.com/html/js/ajax.js

· http://im.xxx.com:9090/cdmocsc/commons/connection.jsp?...

· http://html.xxx.com/im/cdjs/jquery-1.4.2.min.js

PS:这个是一个在线的压缩工具,个人感觉不错,能给出比较好的压缩信息与参数,方便调试,地址:http://tool.lanrentuku.com/csszip/

5.2.4 js的位置

单品页中太多的js放到了头部

· http://www.xxx.com/js/jquery.js

· http://www.xxx.com/js/jquery.cookie.js

· http://html.xxx.com/html/js/jquery.autocomplete.js

· http://html.xxx.com/html/js/search.js

· http://html.xxx.com/html/js/specl2.0.js

· http://www.xxx.com/js/qt.js?...

· http://www.xxx.com/js/pageutil_20110706.js

· http://www.xxx.com/js/goodsdetail_20110705.js

· http://www.xxx.com/js/jquery.countdown.1.0.js

· http://www.xxx.com/js/jquery.lazyload.mini.js

· http://html.xxx.com/im/cdjs/jquery.easydrag.js

· http://html.xxx.com/im/cdjs/jquery.bgiframe.js

· http://html.xxx.com/im/cdjs/plus-utility.js

· http://html.xxx.com/im/js/chat.js

大部分的js都可以放到底部,尤其是一些直接写的function

5.2.5 避免css表达式

http://html.xxx.com/html/css/details0629.css

仅此一个,有时候迫不得已使用,不过还是少用为好,哈哈,这个玩意强大又危险

5.2.6 减少DNS查找

· www.xxx.com: 21 components, 285.7K (88.5K GZip)

· html.xxx.com: 31 components, 428.6K

· log.xxx.com: 1 component, 12.4K (4.1K GZip)

· img.xxx.com: 51 components, 409.2K

· space.feixin.10086.cn: 1 component, 0.0K

· wpa.qq.com: 1 component, 0.0K

· im.xxx.com: 1 component, 2.7K

没办法,这个没法控制的很好,即使是淘宝也一样,暂且飘过吧~

5.2.7减少DOM元素的数量

此单品页中有1243 DOM elements,呃。。。。和首页快有一拼了。。。。。

5.2.8 简单的统计数据

左侧图表显示是页面元素在空缓存的加载情况,右侧为页面元素使用缓存后的页面加载情况

呃。。。这请求数貌似是比较多,赶上首页了,嘿嘿

某网站前端页面性能测试相关推荐

  1. 基于html+css的购物网站前端页面【折扣社】前端网站

    2014年学生时代学前端的时候写的,现在回头来看,很多地方都没有考虑到,比如兼容性,分布式布局 现在已做PHP开发,在回头来看代码,发现那个时候的代码稚嫩, 慢慢的有时间 了,应该做代码重构,应该尝试 ...

  2. 流浪宠物救助网站前端页面_全国爱心人士齐聚鞍山 救助流浪猫狗

    入冬之后,流浪猫狗的"吃饭问题"成了众多爱心人士的牵挂.12日上午,来自全国各地的20余位爱心人士,来到宁远镇张忠堡村一流浪猫狗救助站,将价值7000余元的宠物用品捐赠给救助站. ...

  3. 购物网站前端页面的制作

    课程设计作品

  4. 流浪宠物救助网站前端页面_基于SSM(spring+spring mvc+mybatis)开发流浪宠物(猫狗)救助系统,项目为maven项目,后台可配置化,系统可学习性高。...

    项目描述 一套完整的流浪宠物救助系统,系统支持前台会员的注册登陆,流浪猫狗知识,领养中心,团队活动,流浪宠物详情,申请领养等:后台支持管理员的用户信息管理,流浪猫狗信息管理,管理员管理,领养管理,评论 ...

  5. iview构建基本html页面,写前端页面步骤----vue+iview

    1:用iview构建基本HTML页面 2:在export default{ }中写一个data(){return:{变量:值}}全局对象,用于传递与绑定HTML参数. 3:在export defaul ...

  6. 自动化Web页面性能测试介绍

    随着越来越多的用户使用移动设备访问 Web 应用,使得 Web 应用需要支持一些性能并不是很好的移动设备.为了度量和测试 Web 应用是不是在高复杂度的情况下,页面性能能满足用户的需求. 同时,随着 ...

  7. 基于前端页面开发课程教学网站的设计与实现

    前端页面开发课程教学网站出现以前,人们的学习形式单一,自主学习程度较低,资源共享程度不高,很难接触到更广的知识体系.造成了学习资源的浪费.市面上现在并没有专门的基于前端页面开发的课程教学网站,只有泛化 ...

  8. 前端页面之网站头像处理

    1.生成favicon.ico文件(生成网站) 2.前端页面头部引入 //其中href指向favicon.ico位置 <link rel="icon" href=" ...

  9. 网站开发(周五):项目前端页面开发(实战)

    第一.前端基础简介 前端网页:根据此前项目需求分析可知,我们需要开发网站首页.文章分类页.搜索页.正文页.标签页,而一个最基本网页模版有三部分,网页顶部导航条.网页中部主体.网页底部,其中顶部和底部布 ...

  10. active server pages 错误 asp 0126_微信小程序全栈开发课程【视频版】2.1 小程序前端页面初始配置、ESlint格式错误...

    点击观看视频 ↓↓↓ 小程序前端页面初始配置.ESlinthttps://www.zhihu.com/video/1195030595196223488 课程文字版 1.修改src/pages文件夹 ...

最新文章

  1. linux还原备份的内核镜像,使用Mondo制作Linux镜像(ISO)、还原系统图文详解
  2. ios-晋级之路 CocoaPods引用第三方库不import不自动补齐
  3. [Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)
  4. JavaScript怎么上传图片
  5. Mockito框架学习之stub then return
  6. asp.net ajax1.0基础回顾(五):调用ASMX(WebService)
  7. 使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...
  8. Mac book pro M1 安装 Homebrew
  9. ithoughts怎么自定义样式_微信小程序自定义导航栏组件封装
  10. 高平二中2021高考成绩查询,录取信息
  11. js深拷贝和浅拷贝对数组的影响_javaScript中的深拷贝和浅拷贝
  12. java list 冒泡排序_冒泡排序详细分析JAVA
  13. OSI网络七层协议以及每层的作用
  14. 计算机怎么通过网线共享网络,怎样用一根网线联接两台电脑实现网络共享?
  15. 使用GANs生成时间序列数据:DoppelGANger论文详解
  16. English trip V2 - 8 Holidays and Birthdays Teacher:Julia Key: at on in
  17. 三菱PLC的6大软元件知识
  18. python中time是什么意思_python中time的基本介绍
  19. 【C语言/C++程序员编程】一小时做出来的数字雨(一颗开花的树)!
  20. vertical-align和text-align的理解

热门文章

  1. sync Command in Unix
  2. 才知道系列之GroupOn
  3. 【颜色识别】【Python+OpenCV】KNN(K近邻算法)实现魔方颜色识别【 3-1】
  4. Linux环境编程之文件I/O(二):文件的打开与关闭
  5. 【Github使用感触之一】使多文件多版本变得简单
  6. ArcGIS中修改面图层中相邻面的公共边
  7. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
  8. ERDAS 安装完成之后如何打开软件新建工程
  9. Android 应用快捷方式 ShortcutManager 简单说明
  10. Flutter实战之Dio入门使用