• 1
  • 0
分享
  • 初探网站监控性能测试
  • 恬恬圈 2019-10-23 13:47:37 字数 1844 阅读 3400 收藏 0

从当初的开发,到后来的功能加自动化测试,觉得自己需要去接触一些新的东西。从9月份开始,开始有个新的团队,专门负责网站的性能提高,于是,就跟老大申请了去支持这个team。

首先,我这里说的性能测试,不是传统意义上的压测,所以我们tech lead一直在纠正我,不叫performance testing,而是叫site speed testing。国外的网站不会像淘宝会有那么大的流量,所以我们不是很看重压测,有监控就够了。

做网站速度测试之前,首先我们要弄明白我们在意的metrics,那么有哪些关键的metrics呢?


Metrics

1.速度指标(SpeedIndex)

速度指数是一个计算的指标,用来衡量页面渲染用户可见内容的迅速程度(越低越好)。关于计算方法, 可以参考https://www.nccgroup.trust/au/about-us/newsroom-and-events/blogs/2015/june/speed-index--how-it-works-and-what-it-means/。一般来说,SpeedIndex跟下列几个指标关联紧密:VisualComplete,StartRender以及Page Load Time。

2.Backend Time

主要是指浏览器向服务器发起一个request,拿到first byte的response的时间(TTFB:Time to First Byte)。

3.Start Render Time

浏览器拿到必要的渲染资源,解析后开始渲染第一个像素点的时间。

4.Blocking CSS reuqests

在浏览器渲染内容前,必须要拿到的CSS文件。

5.Blocking JS requests

在浏览器渲染内容前,必须要拿到的JS文件。

6.Load Time (Page Load Time / Visually Complete Time)

顾名思义,这个是加载一个页面的时间参数。

7.Request count

这个就包含了Image request / css request / html request / js request / font request 等等。 这些指标如果突增,一般都表明了一些问题。

8.Request size

跟第七条类似,只不过这个更关注的是大小。


怎样做site speed testing?

1.工具选择

目前用的最多的应该是WebPageTest,一些付费软件比如说SpeedCurve,其实也是在WPT上包了一层。还有Sitespeed.io大家也可以看看。工具只是辅助手段,最主要的还是你觉得好用就好。

2.怎样做测试?

一般当你拿到一个新的功能需求的时候,你会去思考这个会不会影响site speed,如果会影响,大概会影响哪些指标。

拿最近我做的一个ticket为例,主要的需求是去掉blocking js,那么从第一部分我们说到指标来看,这个很明显的是会影响到Start Render Time,那么我们需要做的就是创建一个测试,跑一段时间后,分析一下趋势。

下面这个是当时我们拿到的测试结果:

1.jpg

从上表来看,Start Render Time 提升了一点点,但是我们会看到Page Load Time却变慢了很多。通过研究发现,原来是整个页面渲染的时候调用js的方式发生了变化,如下图所示:

2.jpg

那么这个时候,我们就不知道这是不是一个成功的尝试,因为page load也很重要,会影响到搜索引擎的ranking。通常这种测试我们都是放在ABtesting后面, 那么我们可以通过AB testing设置真实的用户流量去测试,看看实际测试的结果会不会带来好处,从而决定这是不是一个成功的尝试。

3.怎样分析测试结果?

上面我们说了要有针对性地去做测试,那么当我们发现某些指标忽然升的很高,那么我们需要怎样去分析呢?一般这个时候我们就要借助于waterfall了。从requests waterfall中,我们能看到每个请求的详细信息,通过这些信息,我们可以结合一下监控系统/log系统,来诊断是什么问题。

3.jpg

同样,我们从这些信息中,也可以分析出,我们能做哪些改进来提升整个网站的速度。


版权声明:本文出自《51测试天地》原创测试文章系列(四十八)投稿。51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   最近,我们讨论了软件测试工程的的分级,大家都贡献了自己的想法。  对于大家来说,软件测试人的分级其实也代表了我们的进阶方向,职业发展。总体来说,测试工程师未来发展有三个方向:  技术精英  行业专家  管理大师  根据自己的兴趣爱好,测试工程师可以从以下几个方向进行选择,今天我们先来讲技术路线。  如果你对测试技术很感兴趣,可以选择技术精英方向:初级测试工程师--中级测试工程师--高级测试工程师(测试架构师)--测试专家(资深测试架构师)。  晋升方法  如果你在大厂或中型企业,企业有相关晋升制度,与人事沟通好,如果满足晋升条件(各企业晋升制度略有差异),向领导表达自己的意愿,得到领导肯定...
            0 0 815
            分享
          •   写这篇文章的初衷是因为最近项目中涉及到较多支付模块,于是打算从这篇文章开始,陆续整理一下支付宝和微信的支付模块。每篇文末会给出最新整理的支付demo,会随着文章进度不断更新,一方面是自己的总结过程,另一方面希望能帮助到更多像我这种小白的程序汪。其实支付宝的官方文档和demo也很详细,本文只是做简要总结。一、Wap支付产品介绍  这篇文章我们先来介绍一下支付宝Wap支付(也叫作手机网站支付),手机网站支付功能适用于商家在移动端网页应用中集成支付宝支付功能。 商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块,商家网页会跳转到支付宝中完成支付,支付完后跳回到商家网页内,最后展...
            0 0 8980
            分享
          • 1、MySQL基础1.1 MySQL的基本知识按照惯例,先介绍一下 MySQL基本知识:MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 的 SQL “结构化查询语言”,是用于访问数据库的最常用标准化语言。MySQL 软件采用了 GPL(GNU 通用公共许可证),由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本,而选择 MySQL 作为其网站数据库。1.2 MySQL的优势MySQL的优势有哪些,我们来瞧瞧。・MySQL开源的,无需支付额外费用...
            1 0 4551
            分享
          • 10月福利继续加码,填问卷马上参与。不仅能免费获得测试资料,还能参与抽奖活动,京东卡、测试书籍不容错过。链接:http://vote.51testing.com/  一、首先来介绍下什么时软件测试  软件测试,英文Software Testing,指的是对软件进行正确性、完整性、安全性和质量的验证过程。经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。  其实从本质上来讲,软件测试就是为了保证软件质量,对软件功能及六大特性进行验证。软件的六大特性:  二、软件测试的现状:  企业对测试人员需求很大,要求的人在市场上很难找到,测试入门...
            0 0 998
            分享
          •   Google 正在将"帮我写"功能扩展到网页版的 Gmail,允许用户使用 Gemini AI 创建或修改电子邮件。 就像在移动平台上一样,用户在 Gmail 中打开空白草稿时将看到使用该功能的提示。  Google的"帮我写"功能只适用于订阅了Google One AI Premium 或拥有Workspace Gemini插件的用户。 除了生成电子邮件草稿外,"帮我写"还能就如何正式、详细阐述或缩短信息提供建议。  Google还在其"帮助我写作"工具集中为"润色"选项添加了一个快捷方式...
            0 0 483
            分享
      • 51testing软件测试圈微信