如何快速掌握性能知识体系,做好性能测试?

做开发测试的同学都知道,网站性能是影响用户访问的一个重要因素。如果你的网站打开速度很慢,那么你的访客很容易流失,这样会造成业务受损。所以做好性能测试,是开发测试人员必须考虑的问题。阿里巴巴旗下一站式研发提效平台——云效,将于12月29日19:00开启《阿里巴巴分层自动化之性能测试》直播分享,为大家讲解性能测试知识,同时提供性能测试方法和策略。今天我们先来看看阿里巴巴嘉宾的部分解读。

嘉宾介绍

许晓:阿里巴巴B2B事业群技术专家。7年从事性能测试调优及诊断,专注于性能领域的平台建设以及测试平台对于研发效能的提升,对于性能测试以及调优有着深厚的经验积累。曾负责国际网站IPO容量规划,现在主要负责云效整体业务。

性能测试背景


性能测试在早期软件开发行业中并不是最受关注的,比如我们玩的RPG小游戏,那时候并不会抱怨说这个软件性能有多么的不好,而是可能会抱怨说我的机器是有多差。随着互联网的发展普及,包括web2.0的兴起,互联网的服务应用越来越受重视。当网站流量越来越大,我们开始关心服务端的性能是不是能抗住压力,这是性能开始普及的一个阶段。

什么时候会用到性能测试?

当性能测试开始普及的时候,那么我们会在什么阶段进行性能测试?

1.应用使用人数多,网站打开速度慢。


当应用上线有大量用户访问的时候,我们会担心系统能不能抗住压力,如果扛不住,那么业务会不会受影响?以3秒、5秒、10秒法则来说,网站打开3秒以内,用户还能接受,当达到5秒,用户可能就有点不耐烦了,当你的网站用了10秒还打不开,那么用户肯定会离开,并且下次可能不再来。

2.需要提供很高稳定性的基础服务。


在整个的网站应用架构体系中,会有一些接口基础服务,它的职责是对外输出一些稳定的查询,一些服务能力,这个时候系统需要有较高的稳定性,比如访问量很多,数据量很大,这个时候就需要关注性能。另外对于一些核心系统,可用性很高,对于性能系统也是非常关键的。

3.改动了核心应用,担心对链路有影响。


当网站应用比较复杂的时候,比如核心应用被改造了,改造之后我们会担心这对整条核心链路有影响,这个时候也会考虑是不是要去做一些性能评估。

性能测试指标及其联系

性能测试指标通常分为线上指标、基本指标、系统指标和JVM指标。可以从业务方、研发和测试三个角度去看。

通常来说,业务方提出性能指标,比如某段时间内网站可能会带来100万UV, 1000万PV,然后研发将这些指标转化成实际性能指标,比如要实现多少的成交额、交易量等,再根据目标来设定合理的架构策略,最后测试保障这些性能指标。

 

大家可能会有疑问,业务方给出一个指标,怎么换算成研发可以实现的指标?比如在对接阿里巴巴广告类业务时,业务方说:“这个广告发布以后,会给网站带来100万的UV”,那这个怎么换算成研发需要实现的性能指标?这中间其实存在关联。例如阿里巴巴线上监控会统计通常UV和PV的比例,然后根据放大三倍或者五倍的比例,计算出100个UV对应的PV数,这是一种方式。

 

另外一种方式就是对业务进行合理的预估。比如像一些平台首页发布的秒杀页面,可能秒杀产品只有100多个,但是引流来的人有100万,这个时候假设这100万用户都会去查看这个页面,再做一些比例放大,然后得出一个相应的PV关系,也可以帮我们做一个推导。当PV数据有了以后,QPS、TPS、RT也是可以换算得出的。

性能测试方法和策略


在做性能测试时,我们会采用不同的方法达到不同的性能测试目的。

1.基准测试法

当我们拿到一个性能测试项目的时候,我们会对这个系统架构做个了解,了解最好的方式是做一个基准测试,先谈谈它的基本情况。所以会去定一个小并发,比如5-10个人的并发,先去测一测,看它的响应时间,然后将此作为我们的基准。

2.压力测试

如果我们需要快速了解这个系统性能到底是什么情况?我们可以先做一个压力测试,压力测试是为了获取极限性能指标。比如可以设置一个3小时压测场景,每10分钟加10个用户,那到3小时后,可能就是180个用户了。这个时候观察,在压力不断增大过程中系统的表现。

3.负载测试

这是是为了获取性能拐点,我们叫最佳性能。当达到这个点的时候,系统能力、极限能力是多少?这个通常用来做线上流量评估。

4.稳定性测试

我们会把用户真实会发生的场景放大3-5倍,然后在线上运行24小时,在这个阶段会发现很多稳定性问题, list回收,java list回收,一旦回收出现问题,可能会出现内存溢出,这个在日常测试过程中,是很难测出来的,所以用稳定性测试查出这些问题。

5.容量测试

当我们业务越来越复杂的时候,比如一场大促,应该怎么评估线上的性能?如何去做合理的扩容?这个就属于容量测试范畴。

在具体性能测试中,如何针对不同的应用,采用不同的测试方法?比如针对响应时间优先的应用,或者吞吐量优先的应用,应该如何进行测试分析?什么时候采用单场景测试法?什么时候用组合场景测试法?什么时候使用链路测试法?这些都可以进行策略分析,以期达到最优的测试效果。

想要更好的识别性能问题吗?想要掌握正确的性能测试策略和技巧吗?12月29日19:00收看《阿里巴巴分层自动化之性能测试》直播分享,系统学习性能测试。直播名额有限,先抢先得,赶紧预约报名吧!

报名方式

(识别图中二维码,抢先报名)

时间: 2024-08-03 13:52:39

如何快速掌握性能知识体系,做好性能测试?的相关文章

简述数据中心运维知识体系架构

数据中心要正常运转,离不开大量的运维工作.运维的工作需要很多专业技术人才,要做好数据中心的运维需要掌握多学科.多门类的专业技能,运维的工作不强调人才对一门技术有多专.有深度,但要有广度.出于成本的考虑,数据中心不可能聘入所有专业知识领域的人才,需要的是通用人才.如何才能成为一名优秀的数据中心运维专家呢?本文就来说一说运维工作所需的知识体系架构,根据这个知识体系架构,对自己弱势的部分有针对性地学习,很快就能成为一名数据中心运维专家. 数据中心运维知识可以分为三大部分:运维技术.测试和开发和运维管理

完整、准确地把握Flash动态网站开发的知识体系

动态|体系 相关文章:准确.完整地把握Flash动画设计的知识体系 [摘 要] 本文明确阐述了应用Flash和服务端软件(包括Java..NET.ASP.PHP.ColdFusion等)进行网络应用程序开发.调试和部署的完整知识. 完备而充足:完全的技术基础大公开.完全的中文解决方案大公开.完全的安全架构原理大公开.完全的Flash Remoting实现大公开.完全的应用案例大公开.对知识体系进行了总结归纳,建立一个逻辑的知识体系,以利于用户快速.准确.完整地掌握它. [关键词] 动态网站开发,

完善自己的专业知识体系 个人知识体系的建立和管理

文章描述:简述个人知识体系建立. 自互联网在中国普及开始,我们就不停地听到这么一句话–"我们生活在一个信息爆炸的时代".的确,我们可以通过电脑和手机轻而易举的获得各种知识,但是你有没有觉得"我们生活在信息的海洋里,却忍受着知识的饥渴"? 我们习惯在看到认为好的内容时将其收藏,但是收藏的数量总是远远超过阅读的数量.网站越看越多,但是在需要某些资料的时候却无法找到. 随着时代的发展,在这个"知识就是力量"的社会,知识管理逐渐成为一个热门话题.想要不断

准确、完整地把握Flash动画设计的知识体系

flash动画|设计|体系 [摘    要] 本文明确阐述了在应用Flash进行动画创作和部署的完整知识,对知识体系进行了总结归纳,在知识不断增长和爆炸的时代,我们建立一个逻辑的知识体系,以利于用户快速.准确.完整地掌握它. [关键词] 动画,完整的知识体系,三大基本功能,Flash Player,Flash,IDE,ActionScript,绘图,编辑图形,动画补间,形状补间,引导线,遮罩,时间轴,影片剪辑,滤镜,图像混合模式,声音,视频 [正    文] 一个正确的知识体系是学好用好Flas

知识管理:简述个人知识体系的建立和管理

自互联网在中国普及开始,我们就不停地听到这么一句话–"我们生活在一个信息爆炸的时代".的确,我们可以通过电脑和手机轻而易举的获得各种知识,但是你有没有觉得"我们生活在信息的海洋里,却忍受着知识的饥渴"? 我们习惯在看到认为好的内容时将其收藏,但是收藏的数量总是远远超过阅读的数量.网站越看越多,但是在需要某些资料的时候却无法找到. 随着时代的发展,在这个"知识就是力量"的社会,知识管理逐渐成为一个热门话题.想要不断的提高,知识管理是一个不可逃避的话

大数据工程师练成记之首重:知识体系一览!

我们想要告诉大家的是成为大数据工程师需要掌握的知识体系,而作为初学者,你可以先从简单的入手,慢慢在学更深的知识,拿出高考的恒心和坚持来,肯定能行. 值得一提的是,目前大数据工程师的月薪都是20K起,月收入两万的薪资是不是很诱人?而且大数据工程师是非常容易找到工作的,所以--Why not 不扯犊子了,由于篇幅所限,这一部分内容主要包括数据可视化.机器学习和算法三个分支. 数据可视化 R R不仅是编程语言,同时也R具有强大的统计计算功能和便捷的数据可视化系统.在此,推荐大家看一本书,这本书叫做<R

web前端知识体系小结(转)

1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html.css.js)的认识--做web前端需要的比这三大块要多得多. 拖了好几个月了,但是由于近期将要参加的某一个活动,我不得不这两天把这个东西整出来.说干就干.上午我就开始在办公室画草图,乱七八糟的在那儿理思路. 大家不要害怕,其实下文中的这个知识框架要比草图中的好看的

《R的极客理想——高级开发篇 A》一一1.1 R语言知识体系概览

1.1 R语言知识体系概览 问题 如何高效地学习R语言? 引言 最近遇到很多想转行做数据分析的程序员,他们刚开始学习R语言.很多人以为有了其他语言的编程背景,学习R语言就是一件很简单的事情,因而一味地追求速度,但不求甚解.有人说2周就能掌握R语言,但其实掌握的仅仅是R语言的语法,只能算是入门. R语言的知识体系并非语法这么简单,如果都不了解R的全貌,何谈学好R语言呢?本节将介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言.1.1.1 R语言的知识体系结构 R语言是一门统计语言,主要用

六步搭建数据化运营知识体系

数据化运营的概念随着大数据时代的到来被炒得越来越火热,提到数据分析.数据运营让很多产品.运营新人觉得瞬间高大上很多.随着数据概念的火热,如增长黑客.GrowingIO等一系列的数据分析指导产品增长的书籍.产品变得越来越受人追捧.对于互联网行业来说,无论是产品经理还是运营,都需要具备一定的数据运营能力,本文将帮助没有数据化思维的小伙伴搭建基础的数据化运营体系. 本文会按照上图中的数据化运营业务流程进行分析,从明确目标.数据指标制定.数据获取.数据分析.形成策略.验证优化这六个方面来搭建数据化运营的