性能测试学习之路(一)—性能测试基础

前言

性能测试是测试人必备的能力之一,只会功能测试(点点点)的测试注定在社会的竞争中处于劣势。在这里把我五年的测试经验中自学和在项目中运用到的性能测试经验总结一下。下面让我们在性能测试从0开始学习,首先本文讲述的是性能测试基础知识。其中有错误的地方大家多多给予批评,不完善的地方大家多多指导。

一、性能测试基础

1.什么是性能测试

性能测试是一种评估系统、应用程序或组件在特定工作负载和条件下的性能和稳定性的测试方法。

2.性能测试的目的

其目的是确保系统在不同负载和使用情境下都能提供良好的性能,并能够满足用户和业务的需求。性能测试主要通过自动化的测试工具来模拟多种正常、峰值以及异常负载条件,对系统的各项性能指标进行测试。这些指标包括时间特性、负载量、吞吐量、资源利用率和事务通过率等,以确保它们符合预期的性能指标要求。这些测试有助于识别软件应用程序中的性能瓶颈和资源限制,从而保证系统的快速稳定运行。

3.性能测试分类

1.负载测试:在一定的软硬件环境下,通过不断加大负载来确定在满足性能指标情况下能够承受的最大用户数。

2.压力测试:在一定的软硬件环境下,通过高负载的手段来使服务器资源(强调服务器资源、硬件资源)处于极限状态,测试系统在极限状态下长时间运行是否稳定,确定是否稳定的指示包括TPS、RT、CPU Using、Mem Using等。

3.稳定性测试:在一定的软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定。

4.并发测试:很多用户(请求)按照预定场景并发(同一时间点)某个业务是否出现并发问题。

实际场景中,假如双11淘宝性能要求是100并发,最大的负载是200并发,那么压力测试需要负载为200并发(双11当天淘宝的用户在线浏览数量),稳定性测试负载为150。并发测试需要利用Jmeter中的同步定时器来模拟,这个后续会详细讲解。

4.性能测试中的常见名词

1.并发数
①狭义上的并发:所有用户在同一时间点进行同样的操作,比如1000个用户同时登录系统;(可用同步定时器)

②广义上的并发:多个用户与系统发生了交互,这些业务场景可以是相同的也可以是不同的,交叉请求和处理较多

2.TPS/QPS
TPS(Transaction Per Second):每秒事务数,一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。可以指一个接口、多个接口、一个业务流程等等;(在Jmeter中常用事务控制器)

QPS(Query Per Second):每秒查询率,是一台服务器每秒能够响应的查询次数。

TPS和QPS的区别:如果对一个接口进行压测,那么TPS=QPS
如果对一个事务(里面包含很多接口)进行压测,那么TPS≠QPS(TPS取所有接口中最小的QPS,因为一个事务是整个接口的集合,只要一个接口没有通过那么这个事务就不算完成,所以取最小的QPS)

3.思考时间(Thinking Time)
操作时的时间间隔,它可以模拟真实的用户操作,减少服务器压力,满足实际的业务规则,一般情况下加思考时间,但针对于目的只关注于系统性能而不考虑用户场景的可以去掉思考时间。

4.资源利用率
资源利用率分为应用服务器的资源利用率和数据库服务器的资源利用率,一般监测的指标:CPU、内存、队列、IO、网络等。

5.PV
Page View页面浏览量或点击量,用户对同一页面的多次访问,访问量累计,用以衡量网站用户访问的网页数量。

6.RT
Response Time响应时间,指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间,一般对系统来说在1s以内得到响应,用户会觉得系统响应很快,体验非常好;1-3秒得到响应,用户可以接收,体验还不错;3-5秒才响应,用户就感觉慢了,体验有点糟糕;一旦响应超过5秒,用户就会认为是个失败的体验,选择离开或重新发起请求。

7.负载
对被测系统不断施加压力,直到性能指标超过预期或某项资源使用达到饱和,以验证系统的处理极限,为系统性能调优提供依据。

8.吞吐量
吞吐量指系统在单位时间内处理请求的数量,依据公式“QPS(TPS)=总请求数/总时间”可知,系统吞吐量的重要指标就是QPS(TPS)、并发数、响应时间。

5.性能测试通用标准

这个标准是引用的《JMeter全栈性能测试修炼宝典实战》中的web项目性能测试通过标准。
在这里插入图片描述

6.性能测试流程

1.性能测试需求分析——需求分析评审,确定需要压测哪些接口及场景

比如说事业编报名系统,这个在报名开发期间(比如3月1号00:00:00到3月10号24:59:59)的注册、登录、查询、提交接口会存在非常大的压力,此时需要我们对这些接口进行性能测试。
针对于登录接口,我们需要进行负载测试、压力测试(3月1号当天会有非常多的人进行登录)、稳定性测试(在3月1号到3月10号需要保证系统的稳定性)、并发测试(3月1号00:00:00会有人卡着点进行登录)。

2.性能测试计划及方案——编写性能测试计划及方案

根据实际场景和调研来编写性能测试计划和如何实施性能测试。

3.性能测试用例——编写性能测试用例并评审

编写包含用例名称、测试场景描述、预期结果、所需测试数据和具体测试步骤的测试用例。

4.测试脚本编写与录制——编写性能测试脚本

5.建立测试环境——配置测试环境与正式环境一样

这一点在实际测试中往往达不到这点要求,我们可以按照合适的比例来配置测试环境。

6.执行测试脚本——执行

7.性能测试监控——查看性能测试工具中监听器

8.性能分析和调优——对测试结果进行分析和调优

性能调优并不是测试单独完成的,这一环节需要测试、开发、运维等来共同配合来进行对测试结果分析和调优。

9.性能测试报告总结——编写测试报告

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JMeter是一个基于Java的压力测试工具,具有开源免费、框架灵活、多平台支持等优势。它可以用于压力测试和接口测试。学习JMeter性能测试可以通过以下步骤进行: 1. 了解JMeter的介绍和组成结构,包括JMeter的下载、安装和启动。\[1\] 2. 掌握性能测试的基本概念和分类,包括压力测试、负载测试、并发测试和稳定性测试。\[3\] 3. 学习性能测试的基本流程,包括制定测试计划、配置测试环境、设计测试脚本、执行测试和分析测试结果。\[2\] 4. 掌握JMeter工具的基本使用,包括模拟多用户同时发送请求、逻辑分支控制、配置管理和发送请求的设置。\[1\] 5. 学习JMeter脚本开发的精要技巧,包括关联、断言、参数化和数据监控。\[1\] 6. 了解性能测试的常用指标,如并发用户量、吞吐量和吞吐率,并掌握它们所代表的含义。\[3\] 7. 熟悉性能监控的基本命令,包括Linux服务器性能监控指标与分析和MySQL数据库性能指标分析。\[2\] 8. 学习性能测试的常见场景剖析,如电商秒杀、学习系统考试和网络游戏运营。\[3\] 9. 理解性能测试的基本流程,包括制定测试计划、配置测试环境、设计测试脚本、执行测试和分析测试结果。\[2\] 通过以上步骤的学习,你将能够掌握JMeter性能测试的基本知识和技巧,并能够进行性能测试的实践。 #### 引用[.reference_title] - *1* *2* *3* [超详细!Jmeter性能测试](https://blog.csdn.net/muxiaoyu0318/article/details/129048713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值