大话性能测试:JMeter实战mobi电子书提取码

胡通
简介: 本书以业界开源性能测试工具JMeter为依托,结合真实的工作实践,用通俗易懂的语言层层深入讲解性能测试技能。

第1章

性能测试基础

1.1

性能测试新手入门

本节主要讲解性能测试的入门基础知识。首先,介绍一些重要的性能测试基本概念;然后,从整体勾勒出提升性能测试人员能力的专项技能知识图谱;最后,简要描述新手快速入门性能测试的实战思考,让新手在全局上直观认识性能测试。

1.1.1

性能测试的背景

相信不管是技术人员还是非技术人员,不知道“天猫双11购物狂欢节”的人应该极少。2019年,“天猫双11购物狂欢节”开启后96秒成交额破百亿元人民币,24小时内总成交额达2684亿元人民币,创造了交易创建峰值54.4万笔每秒的历史记录。从2014年到2019年,随着技术不断更新迭代,订单量峰值也是不断创新高,如图1-1所示。“天猫双11购物狂欢节”已经不仅是购物节,更是商业和技术的奥林匹克运动会,在不断追求着更高、更快、更强。

除了电商大促,大家司空见惯的还有新浪微博热搜、微信热点事件等典型高流量场景。在热点事件发生时应用稳定运行的背后,是很多技术工程师团队花费了无数个日夜的迭代测试。其中,性能测试发挥着不可估量的作用,因此其意义和重要性可见一斑。

图1-1 2014~2019年阿里平台“天猫双11购物狂欢节”交易创建峰值(数据摘自网易科技)

1.1.2

性能测试的目的

性能测试不同于功能测试,性能测试需要面面俱到,考虑到每一个需求细节,一般来说性能测试更加关注系统的性能表现。概括来说,可以将性能测试的目的划分为5类:能力验证、规划能力、性能调优、缺陷发现和基准比较。

1.能力验证

我们经常会听到这样的描述“某系统能否在什么条件下具有什么能力”,这就是一个典型的能力验证问题。例如,我们为客户进行系统上线后的验收测试,或是作为第三方对一个已部署的应用的性能进行验证,这些都属于为达到这种性能测试的目的进行的测试。

该性能测试的目的具有如下特点。

(1)要求在已确定的环境下运行。

(2)需要根据典型场景设计测试方案和用例。

(3)一般采用的测试方法包括性能测试、可靠性测试、压力测试和失效恢复测试。

也就是说,它关心的是“在给定条件下,系统是否具有预期的能力表现”。

2.规划能力

通常被描述为“系统能否支持未来一段时间内的用户增长”或者是“应该如何调整系统配置,使系统能够满足增长的用户数的需要”。其实它和业界常说的容量规划大同小异,即通过性能测试和评估得到性能基线,并将其作为容量规划的一个指标,明确系统大概在什么情况下会出现瓶颈,什么时候需要进行扩容。但是以系统实际的线上观察数据作为基础会更有效,因此容量规划通过性能测试环境来模拟是不充分的,仅可作为参考。

该性能测试的目的具有如下特点。

(1)它是一种探索性的测试。

(2)它可被用于了解系统的性能以及获得扩展性能的方法。

(3)一般采用的测试方法包括负载测试、配置测试和压力测试。

也就是说,它关心的是“应该如何使系统具有我们要求的性能”或是“在某种可能发生的条件下,系统性能如何”。

3.性能调优

调优可以在多种不同的测试阶段和场合下使用。对已经部署在实际生产环境中的应用系统来说,性能调优可能会首先关注硬件环境和系统设置,例如,对服务器的调整、对数据库参数的调整,以及对应用服务器参数的调整,此时的性能调优需要在生产环境这个确定的环境下进行。但对正在开发的应用来说,性能调优会更多地关注应用逻辑的实现方法、应用中涉及的算法和数据库访问层的设计等因素,此时并不要求性能测试环境是实际的生产环境,只要整个调优过程中有一个可用于比较的基准性能测试环境即可。

该性能测试的目的具有如下特点。

(1)确定了基准环境、基准负载和基准性能指标。

(2)调整了系统运行环境和实现方法。

通常包括如下3个不同层面的调整。

版权:人民邮电出版社