• 1
  • 2
分享

一、页面性能测试概述

页面性能测试则是针对于页面性能优化而开展的一种性能测试,目的是对Web系统的页面进行测试以确认系统页面是否会影响系统的性能并为页面的优化提供依据与建议,最终提升系统的整体性能表现,提高用户体验满意度。可见,Web系统页面性能测试是相对Web系统后台测试的另外一种性能测试,是Web系统性能测试的一个重要部分。

二、页面性能测试必要性

相对于C/S架构的应用系统,Web应用系统所有数据都需要从服务器端下载,虽然浏览器有缓存机制,但客户每次访问仍然需要下载大量的数据。特别是用户对系统要求越来越高,除了要求功能完备,对界面的美观、易用性也提出了更高的要求,越炫的页面也就意味着页面中要包含更多的脚本、样式表、图片和Flash,页面的数据量也就越大,这对Web系统的性能提出了极大的挑战。

曾经有个在线打印服务的应用提供商说他们的系统不需要关注系统性能问题,没有必要进行性能测试,因为他们可以购买足够多的服务器来支撑系统;不少业界同行也认为只要有足够多的服务器资源,性能就不会存在问题。其实不然,他们都只关注到了应用系统的后台性能表现,而忽略了页面对系统整体性能的影响。举个例子,当一个页面中包含几百个请求,页面中没有经过优化的javaScript文件、CSS文件与图片件大小达到10MB,即使当前只有一个用户在访问该系统,页面的访问速度也会慢得惊人,纵使增加再多的服务器也不见得会有明显的性能提升。

可见,对Web应用系统的页面进行性能测试和优化是非常有必要的。只有通过对页面的性能测试,发现页面存在的性能问题并根据性能测试结果进行页面优化以提升页面的加载性能,从而提升系统的整体性能。在应用系统高并发访问时,更能体现出Web页面优化后所带来的系统整体性能提升效果。

两张种方式来提升你的web应用程序的速度:

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

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

1、减少请求和响应的往返次数:

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

缓存相关的请求头

为了提高性能,微软的IE和其他的web客户端总是想尽办法来维持从远程服务器上下载下来的本地的缓存。

当客户端需要一个资源(html,css.js…),他们有3种可能的动作:

  1. 发送一个一般的HTTP请求到远程服务器端,请求这个资源。

  2. 发送一个有条件的HTTP请求到服务器,条件就是如果它不同于本地的缓存版本。

  3. 如果缓存的拷贝可用,就使用本地的缓存资源。

当发送一个请求,客户也许会使用如下的几个HEADER

2、减少请求肯响应往返的字节大小:

  1. 使用更少的图画

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

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

  4. 简化你的页时间

  5. 使用HTTP压缩

页面性能测试工具介绍:

第一种是通过HTTP代理的方式来截取客户与服务器之间的通讯。

1.png

此类的工具非常的多,如:

Charles是一个HTTP代理/HTTP监视器/使开发人员可以查看所有的计算机和互联网之间的HTTP和SSL/HTTPS流量的反向代理。这包括请求,响应和HTTP标头(其中包含的cookies和缓存信息)。

charles界面清爽,采用中国的瓷器为logo,给人的感觉简洁高雅。而且使用也非常简单。下载页面:http://www.charlesproxy.com/download/进入选择你适合你的版本,安装也非常简单,一路“next”就OK了。

2.png

点击工具栏上的“红色”按钮,就自动的记录你浏览器访问的所有网站。

Fiddler是一个Web调试代理,记录所有的HTTP(S)之间的计算机和互联网的交通。提琴手允许您检查交通,设置断点,和“捣鼓”传入或传出数据。菲德勒包括一个强大的基于事件的脚本子系统,并可以使用任何。NET语言扩展。

Fiddler是免费软件,可以调试,从几乎任何应用程序,支持代理,包括IE浏览器,谷歌Chrome,苹果Safari,MozillaFirefox中,歌剧,还有数千交通。您也可以像Windows电话,iPod/iPad和其他流行的设备调试的交通。

3.png

Fiddler2相比Charles功能要更强大一些。当然了,如果单单把他们理解成页面性能测试工具有此片面,尤其Fiddlers2功能强大,当然了,我也没有深究,在此就不过多评论了。


作者:虫师

原文链接:https://www.cnblogs.com/fnng/archive/2011/09/19/2181894.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 作为一名测试人,掌握数据库常用的操作不可缺少,下面就一段mysql 查询语句梳理几个相关语法知识。 本篇文章主要包括两方面内容常用的sql语法开发代码中如何和sql进行关联案例代码` select a.blastid,d.apptime,a.charge_approve,             a.blast_batch,            ...
            0 0 1332
            分享
          •   测试用例八大要素  1.测试用例编号  由字母、字符、数字组合而成的字符串,有唯一性,易识别性。  eg:  1)系统测试:产品编号-ST-系统测试项名-系统测试子项名-编号  2)集成测试:产品编号-IT-集成测试项名-集成测试子项名-编号  3)单元测试:产品编号-UT-单元测试项名-单元测试子项名-编号  这样看到编号就可以知道是做的什么测试,测试的对象是什么,也方便维护。  2.测试项目  当前测试用例所在测试用例所属大类、被测需求、被测模块、被测单元等。  3.测试用例标题  对测试用例的简单描述。用概括的语言描述该测试用例的测试点。每个测试用例的标题不能够重复,因为每个测试用例...
            0 0 717
            分享
          •   在业务系统逻辑实现中,经常涉及异步执行、异步更新场景的开发和使用。但在性能测试中,经常会出现因为异步逻辑设计不合理引发的不可预知问题,比如在开发验证时一切正常,测试人员在性能测试时偶发报错。  本文从Spring事务、业务逻辑顺序、数据库死锁等方面介绍在项目研发中遇到的几种异常场景供读者学习。  一、事务延迟提交引发的异步执行偶发问题分析和设计思考。  1、场景说明:当前有两个线程A、B,A是生产者,B是消费者,A、B两个线程异步执行,A每次从队列获取n条待处理任务,然后依次处理每条任务,包括业务逻辑处理、远程过程调用、更新数据库、将任务放入消费者队列,B从消费队列获取任务进行处理。  2...
            0 0 307
            分享
          •   一、基本控件  1、单选按钮  ·是否只能选择一个选项  · 未进行选择时是否有默认值  2、多选钮  · 可以选择多个选项  3、按钮  · 按钮点击是否有效  · 点击按钮后的跳转页面或者提示是否正确(按钮为新增功能时重复点击是否提交多条重复信息)  · 按钮的点击有效范围  4、下拉菜单  · 下拉菜单的选项是否唯一  · 下拉选项是否可选  5、日期选择控件  · 注意选择起止日期的大小问题,终止日期不得小于起始日期  · 控件有效的选择范围  6、输入框  · 输入内容限定(号码,...
            0 0 593
            分享
          •   一、什么是接口业务安全测试  业务安全测试是根据业务需求,针对业务安全规则展开的系统功能测试。业务安全测试作为在系统功能测试的重要组成部分,在接口测试过程中同样适用。区别于系统漏洞扫描、SQL注入防范等技术安全测试,针对接口展开的业务安全测试更加关注程序逻辑本身对于保障业务规则安全所进行的检查、校验、控制等功能方面的测试,例如银行业务中针对客户信息有效性、账户信息一致性的检查等等。  二、为什么要做接口业务安全测试  顾名思义,业务安全测试的目的自然是为了防范业务风险,提高接口的业务安全性。之所以针对接口测试再次强调业务安全测试,就不得不提到一个众所周知的“零信任原则”。  所谓零信任原则...
            13 13 1585
            分享
      • 51testing软件测试圈微信