09性能测试的种类:如何快准狠地抓住一个测试的本质肉松蛋卷

由于性能测试本身就有好多种类;加上各种测试之间的界限其实很模糊,这就造成了很多人理解上的混乱。

比如大家在工作讨论时,经常说做性能测试,但对于做什么样的“性能测试”,每个人有不同的看法,而且又经常表达不清。这就造成来交流不畅,甚至是误解,从而严重地影响了工作的速度。我见过很多次因为对性能测试定义和交代不清,造成了老板和员工之间/员工和员工之间的理解误差。

性能测试的种类颇多,各自有不同的测试目的、测试环境、负载等等;这里面最重要的是测试目的和负载的大小变化。我们这一讲就一起来分一下类。

性能测试如何分类呢?我们需要从几个方面来看,包括测试目的、测试环境、负载流量、测试对象、负载数据、黑盒白盒等。

测试目的是最重要的方面。大体上有几种目的:

性能测试的环境也有几种,主要是开发环境还是生产环境。开发环境里面更多的是简单的测试来发现一些明显问题,而生产环境测试一般是开发环境测试通过后才进行的。

根据测试的负载大小来分:是小流量,正常流量,还是超大流量。除了大小,负载变化的速度也需要考虑。

测试的对象可以是只针对一个代码功能,或是整个代码模块,亦或是整个系统。

测试的负载数据可以是真正的生产环境中的请求和数据,比如终端客户的网站请求和上传数据,也可以是人工模拟出来的请求及数据。

如果把被测试的对象当作一个整体,不关心它的内部工作机理,也就是把它当作一个黑盒子,那么这种测试就是黑盒测试。反之,如果你也关心它的内部构件和内部设计,就是把它当作白盒子来测试。

我们现在看看你可能经常会提到的各种测试,包括负载测试、容量测试、压力测试、断点测试、瓶颈测试、尖峰测试、耐力测试、基准测试、可扩展性测试和冒烟测试这10种。我分别说说它们是什么特点,尽量用刚刚讲过的分类方式归归类,并且适当举例说明。

需要说明的是,业界对于不同的测试类别其实也是各说各道,没有特别统一而严格的定义。我也是尽我所能,根据我的经验和实践来帮你理一理。

因为性能测试的种类多,我尽量把它们按照某种方式归类一下,帮助你理解和记忆。大体上可以按照负载流量的大小分成三类:低流量、中等流量和高流量。这里的流量高低是相对于生产环境中的流量而言的。当然,它们的实际界限其实很模糊。

冒烟测试是开发人员在开发环境里执行的简单测试,以确定新的程序代码不出故障。冒烟测试目的是确认系统和程序基本功能正常。冒烟测试的执行者往往就是开发人员,但有时也让运维人员参与。

执行耐力测试最常见的用例是暴露某些不易重现的问题,如内存问题、系统故障或其他随机问题。

基准测试或者性能回归测试是着重“前后”对比的测试。

这种测试往往是开发过程的一部分,一般不需要具体的性能要求。代码的演化过程中经常需要确保新的代码不会对整个模块或系统的性能产生任何不好的影响。最简单的方法是对代码修改前后进行基准测试,并比较前后的性能结果。执行基准测试的重点是保证前后测试环境的一致,比如负载流量的特征和大小。

负载测试用于验证被测试系统或者程序是否可以处理预期的负载流量,并验证正常和峰值负载条件下的系统和程序行为。这里的负载可以是真正的客户请求,也可以是仿真的人工产生的负载。

我认为负载测试的定义有时太广泛和模糊,很多其他测试都可以看作是负载测试的一种,比如马上就要讲到的容量测试,其实就是一种负载测试。

断点测试也可以用来确定系统将达到其所需规范或服务水平协议的最大容量,并且自动采取措施来纠正或者缓解。比如云计算环境中,我们可以设置某种性能断点,用它们来驱动某种扩展和伸缩策略。

比如一种性能断点可以是根据用户的访问延迟。如果延迟性能测量的结果是已经超过预定的阈值,就自动进行系统容量调整,比如增加云计算的服务器。反之,系统容量也可以根据断点的规则来减少,以节省成本。如下图所示。

尖峰测试用于确定系统在负载(比如用户请求数)突然变化时的系统行为。这种测试是通过突然增加或减少由用户产生的负载来观察系统的行为。

测试的目标是确定性能在这样的场景下是否会受损,系统是否会失败,或者是否能够处理负载的显著变化。尖峰测试的核心是负载变化的突然性,所以也算是一种压力测试。

可扩展性(或者叫可伸缩性)测试用于确定一个程序和系统的非功能性特征能不能在变化的环境里合理扩展。这里的环境变化包括系统环境的变化、负载量的大小、请求的多样性、数据量的大小等。

在系统环境变化时,同步的测量和观察各种性能指标,并进行数据的分析,从而确定在各种环境下被测试系统的可扩展性。如下图所示。

这个测试的主要目的是了解系统在什么样的环境中,以及什么样的变化会导致系统不能扩展。发现这些环境后,可以进一步有针对性的分析和加强。

容量测试(或者叫体积测试,VolumeTesting)是用于确定一个单位容量能够支持的最大负载。比如一个程序运行在某种服务器上,我们有时需要知道每台服务器能够支持的最大负载(例如客户数),从而决定需要部署多少台服务器才能满足预定的总负载要求。

容量测试一般是会不断增大负载,并且不断地测量各种性能指标。在性能目标变得不可接受之前,系统和程序可以成功处理的负载大小,就是单位容量可以承担的负载。为了尽量让得到的结果匹配实际生产环境,采用的负载流量最好是真正的生产环境的请求和数据。

正常生产环境中的流量和数据或许不够大到让一台服务器超载,因此我们需要解决这个问题。很多公司的解决方案是把其他服务器上的请求重定向到某一台被测试服务器,从而让这台服务器适度超载。这种机制我后面会用一讲专门讨论。

容量测试是确保系统稳定的重要一环。只有进行彻底的容量测试,并有相对应问题的解决方案,才可以使我们能够避免将来出现潜在的超载问题,例如增加的用户数或增加的数据量。

如下图所示,容量测试至少包含三个部分:可调节的流量负载、性能的测量、可以接受的性能指标。这三个部分一起就可以决定单位容量(比如一台服务器)的最大负载容量。这个数据可以帮助我们做各种决策,包括预估系统能负担的总负载;或者根据预期负载来决定部署多少台服务器。

瓶颈测试其实可以看作一种特殊的压力测试。它的目的是找到被测试系统和程序的最制约的资源类型(比如CPU或者存储)。瓶颈测试并不局限于只找到最制约的一个瓶颈,它也可以同时找多个性能瓶颈。

找多个性能瓶颈的的意义主要有两点:

压力测试也是一种负载测试,不过它偏重的是在负载增加到超过系统设计预期后观察和验证系统的行为。当我们通过增加负载,对系统施压到超出设计期望的负载时,就能发现哪个模块或组件首先因超载而失败。这样我们就可以通过提升失败组件的性能来设计出更健壮、性能更优的系统。

相对于容量测试,压力测试的目的是为了暴露系统的问题,因此采用的负载不一定是真正的生产数据和客户请求。

这一讲重点讲了几种性能测试。

在工作中和别人交流时,你一定还会听到各种不同叫法的性能测试。我从业多年的总体感觉就是,性能测试的种类太多,甚至对某一种测试怎么进行也众口纷纭。给人的感觉,就像古诗里面所说的,“乱花渐欲迷人眼”。

虽然各种性能测试叫法不一,但万变不离其宗,你只要主要抓住几点就行,比如分类的方式,流量的大小和测试的目的。

希望通过本讲的讨论,你能对不同的性能测试之间的区别更清楚一些了,以后工作交流和阅读文献时能搞清楚它们是什么种类的测试,从而对症下药,做好测试规划和合理的分析。

THE END
1.华夏准测检测深圳市华夏准测检测技术有限公司致力于为企业提供3C,3C流程,3C费用,3C办理,3C多少钱,深圳3C,广东3C,,CE,CE检测,CE公司,CE流程,CE实验室,CE费用,深圳CE,FCC,FCC公司,FCC流程,FCC周期,FCC费用等国内外检测认证服务。http://www.cqa-cert.com/
2.深圳市准测检测技术有限公司简介:深圳市准测检测技术有限公司 (曾用名:深圳市准测技术服务有限公司) ,成立于2008年,位于广东省深圳市,是一家以从事专业技术服务业为主的企业。企业注册资本50万人民币,实缴资本50万人民币。通过天眼查大数据分析,深圳市准测检测技术有限公司拥有行政许可3个。更多 评分53 https://m.tianyancha.com/company/2319139235
3.准的笔顺笔画数:10拼音:zhǔn部首:冫乃于战所,准当时兵士,人种树一株,以旌武功。——《周书·文帝纪下》 又如:批准;照准;准如所请(2)引申为比照,作某类事物看待。如:准前例办理;准平原;准尉(3)表示依据、根据。如:准某部函 决定,必定〖determine〗。公文用语。如:准于某日起程 http://www.zhihuishan.com/bishun-view-234.html
4.准测,criteria,在线英语词典,英文翻译,专业英语上生成一个准测度. 设O是一个局部凸线性空间,A是其对偶空间O‘的有限维子空间的集合,它以包含关系为序,又设黔,,以任A,是关于所有线性泛函职〔“是可测的最小a代数.代数吸=口“‘月忍。的集合称为柱集(cylin-drical sets),在俄上的任一准测度称为柱测度(cy红11-drical此asure)(或拟测度(quasi一此http://www.dictall.com/indu/237/23660627695.htm
5.星盘测试准不准星盘查询测测星盘不准是怎么回事呢?我倒你远古来的,新浪星盘好用的免费在线占星命盘提供本命盘双人盘推运盘生理曲线双人比较盘组合中点盘时空中点盘三限盘次限盘太阳弧运行盘等全面的星盘查询分析。 星座里面的测试准不准?星座其实是一门科学涉及物理、统计等学科的知识但是现在有的人没有什么能耐却编出什么运程来吸引人们的目https://www.16757.com/ysh/ganqing/1174.html
6.科学网—啥叫测不准原理?量子力学的科普文章轮不到我来写,我也没有这个能力科普量子力学,文中提到的一些概念不过信手拈来,根本没有多加推敲,不成想招到科学网“斗士”吴国胜博主的质疑,质疑我不懂测不准原理。其实我文章中只说到了测不准,并未提什么原理,虽然后面提到了海森堡的测不准关系,不过没有给出这个关系的详细解释。我文章还https://blog.sciencenet.cn/blog-40247-589772.html
7.测视力软件哪个准?视力测试app有哪些?手机测视力软件视力测试软件是一款帮助用户准确测量自己视力的工具,同时提供贴心的配镜服务和视力矫正的方法,让大家更好的了解自己的视力情况,呵护自己的双眼,让眼睛更加明亮,测视力软件哪个准?手机视力测试有哪些?绿色资源网收录了最全的视力测试app和视力表等,一起来看看吧!http://www.downcc.com/k/shiliceshi/
8.计算机辅助普通话水平测试详细操作步骤语言文字测试(6)配置报到时间:点击“展开报到时间配置”,可以设置实际测试的地址和间隔时间以及上下午的报到时间;可以点击“报到时间预览”查看每批次的报道时间;(注:这一步很关键,将直接影响考生准考证上每个考生的报到时间) (7)当以上都设置完毕后,点击“确定”按钮即可完成新建测试任务的操作。 http://yczx.hee.gov.cn/col/1243304133652/2009/07/14/1247536740523.html
9.一文看懂常用测量仪器的使用及其作用控制工程网(2)调焦和照准。水准仪整平后,将望远镜对着明亮的背景,转动目镜调焦螺旋,使十字丝清晰;用望远镜的准星和照门瞄准水准尺,然后旋紧制动螺旋固定望远镜;转动物镜调焦螺旋,待水准尺成像清晰后,再转动水平微动螺旋,使十字丝竖丝照准水准尺;瞄准目标后,眼睛可在目镜处作上下移动,如发现十字丝与目标影像有相对移动,读数随http://article.cechina.cn/17/0221/02/20170221025109.htm
10.验孕棒什么时候测最准今年27岁,和老公备孕中,怀疑自己怀孕,怎么测 王会茹主任医师 西安市第四医院 验孕棒一般在晨间第一次小便的时候测试最准确,因为一般早上这时候尿液中的人绒毛膜促性腺激素水平最高,所以检出率会最高。一般建议月经推迟七到十天的时候用验孕棒测试会比较准确,但是因为个体的差异,过早用验孕棒做测试很可能得到的测试结果https://www.rwys.com/articlecontent/14622
11.钢网架挠度测量入门教程(二)(含详细检测步骤与图解)1)正镜(盘左)开始,照准一组中的第一个方向:棱镜,用中丝切准目标,并使目镜中心十字与棱镜中心十字重合,读数(【目标选择】选择【棱镜】,点击【采集】—【点测量】—【测距】—【保存】,或者【测存】)。 图7 测量读数-数据采集界面 以上【点名】是目标工作基点(棱镜所在地面位置)的名称编号,也是自己编的。测https://www.360doc.cn/mip/982154036.html
12.体脂秤,测得准脂肪吗?体脂秤,测得准脂肪吗? 测体重的时代已经过去,体内的脂肪含量,才是青年男女的新潮身体指标。 几乎全民标配的体脂秤,成为高效测脂的核心工具。仅需10秒,体脂秤发送弱电流循环全身,从而估算一遍体内脂肪含量。原理在于:人体的脂肪几乎不导电,不导电的地方越多,体脂含量越高。https://m.36kr.com/p/1859922304128898
13.上海准实验设计案例的定义目的与实施方法上海准实验设计案例是指在上海中心城区规划和建设过程中,采用准实验设计的创新性案例。 准实验设计是一种前所未有的城市规划和建设方法,该方法旨在通过小规模试点、实证评估、逐步迭代的方式,实现城市规划和建设的科学性和可持续性。 上海作为中国最大的国际金融中心和国际航运中心,面临着快速城市化带来的一系列问题和http://www.51jinxian.com/m/view.php?aid=8154