Web网站性能测试分析及调优实例

发表于:2016-10-26 13:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:白灰    来源:51Testing软件测试网采编

  1、背景
  前段时间,性能测试团队经历了一个规模较大的门户网站的性能优化工作,该网站的开发和合作涉及多个组织和部门,而且网站的重要性不言而喻,同时上线时间非常紧迫,关注度也很高,所以对于整个团队的压力也非常大。
  在此,把整个经历过程给大家分享一下,包括了主要包括了如何使用性能测试的压测工具,压测前的性能问题评估,以及压测执行后的性能问题分析、瓶颈定位。
  该门户网站的服务器是放在华通和阿里云的平台上的,所以对华通和阿里共建的云平台安全及应急措施方面要求非常高,需要团队给予全力的保障和配合。
  性能测试(Performance Testing)是集测试机管理、测试脚本管理、测试场景管理、测试任务管理、测试结果管理为一体的性能云测试平台,可以帮助您全方位的评估云上系统性能。
  本次优化主要是使用了该测试平台服务对客户搭建在ECS上的服务器进行多种类型(性能测试、负载测试、压力测试、稳定性测试、混合场景测试、异常测试等)的性能压测、调试和分析,最终达到满足期望预估的性能目标值,且上线后在高峰期满足实际的性能和稳定要求。
  2、术语定义
  在介绍项目经历之前,再明确一下测试当中用到的专业指标术语定义,包括但不仅限于以下:
  PV: 即PageView, 即页面浏览量或点击量,用户每次刷新即被计算一次。我们可以认为,用户的一次刷新,给服务器造成了一次请求。
  UV: 即UniqueVisitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
  TPS:TPS(Transaction Per Second)每秒钟系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标。
  响应时间: 响应时间是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。
  VU: Virtual user,模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里。一般性能测试过程中,通俗称之为并发用户数。
  TPS波动: 系统性能依赖于特定的硬件、软件代码、应用服务、网络资源等,所以在性能场景执行期间,TPS可能会表现为稳定,或者波动,抑或遵循一定的上升或下降趋势。我们用TPS波动系数来记录这个指标值。
  CPU: CPU资源是指性能测试场景运行的这个时间段内,应用服务系统的CPU资源占用率。CPU资源是判断系统处理能力以及应用运行是否稳定的重要参数。
  Load: 系统正在干活的多少的度量,队列长度。系统平均负载,被定义为在特定时间间隔(1m,5m,15m)内运行队列中的平均进程数。
  I/O: I/O可分为磁盘IO和网卡IO。
  JVM: 即java虚拟机,它拥有自己的处理器、堆栈、寄存器等,还有自己相应的指令系统。Java应用运行在JVM上面。
  GC: GC是一种自动内存管理程序,它主要的职责是分配内存、保证被引用的对象始终在内存中、把不被应用的对象从内存中释放。FGC会引起JVM挂起。
  网速: 网络中的数据传输速率,一般以Byte/s为单位。通过ping延时来反映网速。
  流量: 性能测试中,一般指单位时间内流经网卡的总流量。分为inbound和outbound,一般以KB为单位。
  3、评估
  本次性能测试过程的参与人包括了阿里云应急保障小组等多部门人员,网站为外部供应商开发,阿里云提供云主机和技术支持。
  该网站之前前期也由其他部门做了验收工作,进行了完整的性能测试,报告显示,性能较差,第一次测试,网站并发数没有超过35个,第二次测试,网站上做了优化后,静态页面缩小后,并发用户数100内 5s ,200内 90%响应在15s以上,随着并发用户数的增加,页面响应最高可到20多秒,而且访问明显感觉较慢,所以联系了阿里云的技术支持,希望能够帮助诊断性能问题,给出优化建议。
  经过会议讨论后,评估出最终的测试目标:带页面的所有静态资源一起,响应时间必须小于5秒,同时并发访问用户数最低500,TPS根据实际的结果来得出。
  4、性能测试目标
  · 并发用户数:>=500
  · 业务响应时间:<5秒
  5、分析
  通过性能测试前端分析工具(未开放)分析,页面的响应时间88%左右都是消耗在前端资源加载上,服务器端消耗只占到了页面响应的12%左右;
  一个网站的响应一般由四部分时间组成,前端、网络、服务器和数据库,前端主要是减小页面大小,减小页面请求数,优化页面js等,网络主要是使用CDN,优化连接数等,服务器主要是优化Apache,优化Tomcat,优化java代码等,数据库是优化sql语句,优化索引,优化数据存储等。
  6、测试和优化
  6.1、页面前端分析及优化
  我们对页面的优化仍然从前端开始,首先通过性能测试的前端测试工具(未开放)进行扫描,我们发现以下问题并优化:
  · Js较大,无压缩,同时存在重复请求,最多一个js加载4次,已做压缩和减少。
  · Js位置不合理,阻碍页面加载。
  · 外部css 考虑本地实现,减少调用
  · Banner 背景图片较多,无压缩,建议合并
  · 页面1的后台.do有4个,减少为3个
  · 页面2的后台do有 2个,减少为1个
  · 存在加载失败链接,404失败,同时次数非常多,更换为cnzz
  · 页面加载外部资源失败 (qq等),且不稳定
  · 分享功能比较慢
  · 外部资源建议异步实现,目前全部是jquery渲染,iframe嵌套,时间资源限制,后期优化
  · 尽量减少或者不使用iframe
  页面请求数太多,主要是js和css重复加载问题和图片较小导致的。 经过以上修改及配置服务器静态资源缓存后,性能提高25%,首页响应从1.5秒提高到1.1秒,并且前端优化持续进行。
21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • h_danny
    2017-8-07 13:58:00

    厉害

  • PPP777
    2017-4-27 16:36:00

    很精彩,可惜图片不清楚

  • Mrjobman
    2016-12-02 17:01:44

    nice

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号