性能测试(一)

article/2025/10/5 14:46:42

一)谈谈你对于性能测试的理解:

1)性能测试的概念+ 测试目的+与功能测试的区别+性能测试的指标

2)性能测试需要借助工具来进行测试,可以说说自己是用了哪些工具以及如何使用工具来进行性能测试

3)为了避免面试官在性能测试方面进行深究,主动说性能测试难就难在性能分析,需要具有多个方面的知识储备,说自己只会进行一些简单的性能测试;

二)loadrunner工具介绍:

要具体介绍三个组件,从个人使用上来说虽然VUG具备强大的录制功能,但是录制好的脚本达不到预期的测试目标,我们仍然会选择通过手动编写性能测试脚本的方式来进行增强代码

引出增强脚本的方式:事务,集合点

检查点(检查页面对应的展示是否符合预期)

参数化(模拟用户的输入)

来模拟大量用户的并发,来检测系统的性能

三)如何对自己的个人的项目来进行性能测试呢?

一)要进行性能测试方案的制定:

如何来确定哪些页面,哪些功能适合做性能测试?

主要是针对用户大量进行访问的界面还有一些主要的功能界面

二)性能测试设计和开发:主要是进行脚本的开发

哪些功能设计了一个事务

那些功能设置了检查点

那些功能设置了集合点

哪些功能设置了参数化

使用Controller进行创建场景,运行并且进行监控,点击率,虚拟用户,吞吐量,观察运行情况

三)使用analysis进行性能分析:

性能调优:避免全表查询

 

性能测试执行:

1)同时几千万人同时访问接口,看看页面访问时间,页面是否可正常展现

2)比如说对于这个登陆注册的接口,设计千万个注册登录的接口,看是否页面可以正确的展现,造成服务器负载压力过大;

1)我们的系统处理资源的能力是有限的,有一个最大的信息处理的一个量,一旦超过系统所能够处理的最大的信息量的时候,系统的性能就会发生极大的改变,这个点就叫做系统性能测试拐点,系统最大的负载和系统性能逐渐下降的一个临界点;

2)当我们在做压力测试的时候,负载测试,都希望能够找出性能测试的拐点,找到系统性能测试瓶颈,要研究一下系统的架构,看看是不是存在线程的同步问题,资源争抢问题,还有看看到底是哪一个组件功能,算法,阻碍了性能的提示,从而做出进一步的优化,在拐点处可以查看日志

一)常见的性能问题: 

1)系统的内存泄漏或者是资源泄露,分配的内存无法回收或者是忘记回收内存从而导致不停的分配内存,耗尽了内存,从而导致系统运行越来越慢,最终导致系统崩溃

2)线程阻塞,线程死锁,导致系统程序无法继续向下执行

3)查询列表展示的速度越来越慢,刷新页面,软件各个功能的响应时间,页面加载时间和按钮反应时间,页面跳转时间

4)CPU的利用率达到了100%,最多只能占有70%,以及各种资源,内存资源,磁盘资源,网络资源,带宽资源,

5)弱电,弱网以及各个功能使用时候的耗电量

二)为什么要进行性能测试 

1)进行基准的性能测试,获取到新系统性能的基准性能指标,比如说开发新功能不能影响到老功能的性能,所以我们需要先知道老功能的性能指标;

2)测试系统是否满足了系统的性能需求,就是是否达到了系统所进行期望的性能指标

2.1)看看系统是否可以进行预期的并发用户数量或者有一定盈余的能力(保证系统在任何情况进行稳定运行)

2.2)看看系统是否能够达到要求的性能指标

2.3)系统是否可以处理预期的事务数量

2.4)系统在预期和非预期的情况下,应用程序都是可以稳定的运行的

2.5)系统在任何情况下,用户都会有良好的体验

3)当系统出现性能问题的时候,可以找到系统的性能瓶颈,发现资源泄露等问题

4)进行性能测试的时候,可以帮助我们的系统规划硬件设备,哪一款软件在对应的硬件上使用比较好

5)可靠性:就是我们的系统是否能够长时间地承受高并发的这种情况,用户负载比较多

6)可扩展性:是否能够改成处理更多的用户请求

三)系统性能测试的流程: 

1)先知道系统的性能需求:根据性能需求分析出系统性能指标的要求要量化

2)根据性能需求分析出来的进行性能测试的类型,要确定性能场景必须知道是进行压力测试还是并发测试,还是可靠性测试,因为不同的测试场景对时间和实际负载是不一样的

3)运行我们的性能测试场景,得出性能测试报告

4)根据性能测试报告找到系统性能测试的瓶颈

四)如何确定性能测试的需求来确定性能测试的指标

1)关键性能指标的分析

1)要支持2亿用户中的1%在线

1.1)所以同一时刻200万用户同时在线,所以说至少要支持200万用户的并发量

1.2)还要支持200亿用户的支持增删改查操作,响应时间低于1s

2)既然每天都支持2000万的次交易,时间在早上的8点到晚上的2点,所以说这个操作系统每秒钟支持的交易次数是(2000W/16*3600=309次/s)

3)高峰期:因为题干已经说了,高峰期系统的处理能力要求是平均值的三倍,所以会支持6000万次交易量,并且响应时间要在3s内,交易成功率(HTTP请求的成功率)不能低于99.9%

2)关键业务分析,分析可能会影响到系统整体性能的功能模块

1)关键业务就是用户频繁使用的业务,比如说淘宝打开首页,搜索商品比较多,用的比较少的功能比如说收藏商品

2)计算量比较大的业务比如说支付功能,支付卷功能,后台的计算量是很大的

五)衡量软件性能的四个维度

1)软件开发人员

系统架构:架构设计是否合理?
数据库设计:数据库设计是否存在问题,数据查询太慢,索引设计不合理会影响性能
算法:核心算法效率是否高?占用内存之间和速度执行方面取一个综合的值
设计和代码:系统资源分配不合理的问题

2)系统运维人员(操作系统、网络、服务器等等)

系统容量以及系统长期的稳定运行,服务器及各种资源分配是否合理,增加服务器

3)用户体验:越快越越好,响应时间快还有稳定提供有效的数据

4)测试人员:以上都要进行考虑

常见误区:

1)性能测试独立于功能测试:一般是在功能测试稳定之后再来进行性能测试,一个功能本身就不稳定,那么当有多个用户进行并发访问的时候肯定就玩完了

2)性能测试通常是在功能测试完成的中后期,等到功能测试稳定之后再来进行性能测试

六)性能测试指标:

系统用户数量:注册系统的用户数量不等于并发用户数

1)并发用户数:同一时刻向服务器发送请求的数量

业务层面并发数:同一时刻向服务器发送请求的用户数量

后端服务器层面并发数:同一时刻向后台服务器发送的HTTP请求的数量

2)系统的响应时间:

是指用户发出HTTP请求到前端页面渲染出所有数据展示到用户面前的时间

响应时间分为前端展示时间和系统响应时间两部分

响应时间=人的反应时间+网络传送时间(一来一回)+服务器处理时间(响应时间)+数据库响应时间+前端渲染页面的时间
2.1)前端展示时间指的是客户端收到服务器返回的数据后渲染前端页面,所耗费的时间。
2.2)系统的响应时间,分为web服务器,应用服务器,数据库服务器,等各种服务器之间通信和处理请求的时间

3)系统平均响应时间:是指所有HTTP请求的一个平均响应时间

4)吞吐量:Throughput Second

系统在单位时间内处理的信息量,处理信息无非就是处理用户发送过来的HTTP请求,肯定是处理得越多越好,从网络的角度来说,可以用字节数/天数来进行衡量,直接体现出软件系统的性能承载能力

5)事务响应时间:服务器处理完成一个事务的所需要的平均时间(事务比如说转账操作)

发起支付操作:结算系统+会员系统+银行系统+支付宝系统,整体就构成了支付事务只有所有的系统处理成功了,我们的支付操作才算完成,其中有一个失败了,你的支付操作也就失败了

6)平均每秒处理的事务数量:服务器平均每秒处理多少个事务,是衡量系统关键性能指标(TPS)(Transaction Per Second)

6.1)TPS是指每一秒系统能够处理的事务数量,它是衡量系统处理能力的重要指标

6.2)当我们的压力加大的时候,TPS曲线如果变化缓慢或者有平坦的趋势,那么很有可能是服务器出现瓶颈了,如果环境没有发生变化,对于同一个系统会存在一个最大事务处理能力,也并不会随着并发用户的删减而改变

咱们就拿地铁检票机来说,现在只有10台进站检票的机器,一台机器1s能进10个人

并发用户数是5,那么TPS是5

并发用户数是10,那么TPS是10

并发用户数是100,那么TPS还是10(人多了,就得排队),不是单纯的说并发用户数多了,TPS才会增长,在我们的TPS范围之内,随着用户请求增多,TPS才会增长,一旦到达我们的系统最大处理量的时候,TPS不变了

7)点击率:Hit Per Second

每一秒用户向WEB服务器发送的HTTP请求的个数,点击率越大,那么服务器的压力就越大

考时间(Think Time)

这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求

8)思考时间

人在第一次点击之后,看到了期望的响应结果之后,再进行下面的操作,就是一个操作和另一个操作,一个HTTP请求和另一个HTTP请求的间隔时间,是为了更加模拟用户的真是操作场景
9)资源利用率:系统在运行的时候所占用的资源的平均情况
不同系统资源的使用情况,CPU资源,内存资源,磁盘资源,网络资源,所占的CPU资源不能超过70%,所以可以通过任务资源管理器来查看各个进程的占用情况

10)软、硬件配置是否合适(容量规划/硬件选型)

七)性能测试方法介绍

一)代码级别的性能测试:

代码级别的性能测试是在单元测试阶段就对代码的时间性能和空间性能以及算法效率进行必要的测试和评估

二)基准测试:

对于一个全新的系统,需要了解这个系统的性能

就需要进行基准测试,需要获取系统的性能指标

1)作为以后性能测试的调优一个基准

2)比如说以后再次上线一个新产品的时候,就要在本次性能指标的标准上面增加10%或者更多,这样的目的就是为了让我们上线的产品,性能变得越快越好,不能拖慢老系统的性能吧

3)就是当以后系统的环境,参数发生变化之后,再进行一次相同标准下的测试,参考基准测试的结果可以看出变化对性能的影响

4)系统进行基准测试可以在较早的阶段发现问题

三)并发测试:

同一时刻向系统的服务器发送请求,看看在并发情况下系统性能的表现,看看是否会出现资源竞争竞争不合理,内存泄漏,死锁等性能问题

这里的并发测试指的是严格的并发测试,也就是所有用户在同一时刻向后端服务器发送请求

四)压力测试:

压力测试通常是指后端服务器的进行压力测试,不断的给服务器施加压力

1)也就是增加HTTP的请求数量,看看系统处理临界饱和状态下,一般是让系统的用户负载达到饱和长时间运行服务器的各种性能指标(吞吐量,事务处理数量)是否在正常范围内看系统是否会出现性能问题,是否可以稳定运行;

2)查看日志找到性能瓶颈

3)在不断地加压过程中,一旦系统出现拐点(从量变到质变),系统可能就会出现崩溃,揭露高负载下系统的问题,例如资源竞争、同步问题、内存泄漏等;然后逐渐较少压力,观察瘫痪的系统是否可以自愈

五)负载测试:

3.1)本质上说就是给系统定容定量,在系统上面不断增加负载,也就是用户数,观察系统能够承受的最大用户负载是多少,看看系统是否达到了需求所需要的性能指标

3.2)负载测试是在被测试系统上面不断增加压力,直到各项指标达到饱和,比如说响应时间超过了预定指标或者某种资源使用已经达到了饱和状态,从而找到系统的处理极限

负载测试和压力测试的区别:

1)负载测试和压力测试两者可以结合执行

2)负载测试,确定在各种工作下负载系统的性能,目标是检测系统负载逐渐增加的时候,系统的各项性能指标的变化情况

3)压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能够提供的最大的服务级别的测试

六)配置测试:测试系统在不同的软硬件的配置下,系统性能的表现,找出适合系统运行的软硬件环境配置

临时内存存储空间,操作系统版本,浏览器版本,JVM版本,数据库,网络,不同的应用服务器,不同的电脑,不同的手机APP

七)可靠性测试:并发情况下,长时间运行系统,看看系统是否会出现性能问题

1)这里所说的并发情况是指系统实际并发数的60%-70%,而压力测试是超过系统的实际并发数的100% 110%,就是不断加压

2)性能问题指的是:线程死锁,资源泄露,CPU各项资源的利用率,响应时间

3)长时间运行系统,观看系统的性能指标是否稳定,有的系统在短时间运行的时候可能性能没有什么问题,指标可能达到要求,但是当运行时间变长,往往会暴露出一些问题

4)这个时候还是要看响应时间,TPS,吞吐量,点击率,资源利用率是否正常

8)大数据量测试:

8.1)独立的数据量测试:针对某些系统存储,传输,统计,查询等业务进行大数据量测试

8.2)和压力测试,负载测试,并发测试,可靠性测试相结合的综合测试方案

9)失效恢复性测试:

9.1)人为的让我们的服务器集群系统中的某些系统服务器发生崩溃,看看其他服务器集群是否能够稳定的运行,并且可以达到系统性能和功能的要求

9.2)这种测试方法用于检测如果系统局部发生故障,用户能否继续使用该系统,以及这种情况发生,用户将收到多大程度的影响

性能测试前期准备:

系统基础功能验证:

1)首先要确保当前需要进行测试的应用系统具备了进行性能测试的条件

2)确保当前进行性能测试的应用系统的版本已经稳定

3)必须保证性能测试之前至少进行了一轮系统功能覆盖性测试,况且性能测试的选取的业务功能是正常的

支持系统角色:

1)进行配置测试的时候,要进行网络带宽的一个准备,再进行模拟并发的时候,网管要协助测试工程师解决网络方面的问题

2)需要向数据库中插入大量的用户,直接让数据库工程师在数据库中进行大量用户的插入操作,这是我们在实现进行系统登陆功能的效果是一样的

3)专门的测试工程师

我们在做性能测试的时候,并不是对每一个功能都做性能测试,只是对常用的功能做性能测试,常用的功能的用户量比较多,服务器压力比较大,如果这个该功能在大量的用户访问下都没有问题,那么其他的功能也没有问题

常用的,关键性的业务,浏览功能,支付功能,添加购物车这些和新的功能

想要进行性能调优,就要找到性能瓶颈,然后再进行改进

性能测试分析与调优:

1)测试分析是需要测试分析人员具有相当程度的对软件性能,软件架构,以及各种性能测试指标的了解,还是要分析各种图标

2)这是为了可以让我们的系统性能达到一个更高的级别,或者满足我们的性能需求

3)通常是拐点分析的方法,关注性能表现上面的拐点,获得拐点附近的使用情况,定位系统的性能瓶颈

 


http://chatgpt.dhexx.cn/article/ymdJ7dSE.shtml

相关文章

最全面性能测试方案模板

性能测试方案书 1 简介 1.1目的 编写本文档的目的在于描述测试项目的测试范围,定义测试条件和目标,测试策略和要求,分析可能的风险,提供相应的规避措施或应急对策,并确定测试整体进度的计划和人力资源安排等。 测试目…

性能测试介绍

转载来源 公众号《测试开发技术》 1.性能测试要开专栏了 提起性能测试,可能很多互联网从业人员会感觉比较混淆(不仅仅只是测试人员会弄混淆,很多开发人员、管理人员对性能测试也都是一知半解)。性能测试,它是属于测试…

性能测试流程-性能测试2

性能测试流程 1. 性能测试需求分析 2. 性能测试计划及方案 3. 性能测试用例 4. 搭建测试环境 5. 测试数据准备 6. 测试脚本编写 7. 执行测试脚本 8. 性能测试监控 9. 性能分析和调优 10. 性能测试回归 11. 性能测试报告总结 1、性能测试需求分析 熟悉被测系统 熟…

【测试方案】性能方案设计

什么是性能测试? 压力测试:强调极端暴力 稳定性测试:在一定压力下,长时间运行的情况 基准测试:在特定条件下的性能测试 负载测试:不同负载下的表现 容量测试:最优容量 性能测试方案设计流程 需…

性能测试—性能测试方案设计思路总结

一、需求分析 1.测试目的 为什么测?目的在于测试系统相关性能能否满足业务需求。通常分以下两种情况: 1)新项目上线 2)老项目优化 如果是老项目优化,可考虑是否存有历史测试方案,如果有可以参考&#…

性能测试计划及方案

说明:性能测试实施第一份文档,也是最重要的一份文档。 主要内容: 1、项目背景 项目是用来做什么的 2、测试目标 确定此次性能测试的目标,决定测试策略(下文) 3、人员安排 明确性能测试的时间&#xff0c…

性能测试详细测试方案

性能测试详细测试方案 前言 平台XX项目系统已经成功发布,依据项目的规划,未来势必会出现业务系统中信息大量增长的态势。 随着业务系统在生产状态下日趋稳定、成熟,系统的性能问题也逐步成为了我们关注的焦点:每天大数据量的“…

性能测试设计方案

前言 最近比较多的时间是在做压力测试,也就是常说的压测,而且压力测试也属于性能测试中的其中一个,所以今天总结下性能测试的测试方案。 性能测试分类 常见的性能测试分类一般分为:负载测试、压力测试、稳定性测试 ①负载测试&…

​性能测试基础——性能测试方案(示例)

前面所说的测试分析等准备工作实际上最终目的是制定测试方案,测试方案一般包括: 项目的简要说明、项目系统结构、项目的业务结构、以及项目的性能需求、测试环境数据以及测试策略方法、测试案例、测试人员进度安排以及测试风险预估等等。 下面是一个一般…

性能测试~性能测试方案

1. 背景 1.1. 项目背景 明确该性能测试的项目背景 1.2. 性能目标 性能目标都会影响项目的整个过程,对目标的把握将决定一个性能项目的走向 测试测目标必须明确 取生产峰值流量作为基线(目标一般是峰值的xxx倍)业务的流量预期 2. 测试范围 明确需要测试的特性…

干货|一次完整的性能测试,测试人员需要做什么?

作者:Kiki Deng 一、 规范性能测试实施流程的意义 规范的性能测试实施流程能够加强测试工作流程控制,明确性能测试各阶段应完成的工作,指导测试人员正确、有序的开展性能测试工作,提高各角色在性能能测试中的工作效率。本次分享的性能测试实施流程是性能测试开展的”指导方…

让外网访问内网

让外网访问内网 假如我的电脑的ip是192.168.0.100 我在这个ip下开放了一个3000端口 同一wifi下的设备可以访问192.168.0.100:3000 但是只要访问的设备和被访问的设备不在同一wifi下就不能访问了 现在来解决 需要用到一个叫花生壳的软件 打开花生壳 点击右下角的加号 根据需要…

内网接入外网的几种方式

背景:Pc1pingAR2是ping不通的,因为两者不在同一个网段,pc1虽然知道AR2的地址,但是AR2不知道pc1的地址,所以要将pc1转为公网的ip地址 一.静态地址转换 (1)全局模式下配置 将内网主机的私有地址…

如何同时使用内网和外网

场景: 最近在对接医保专线的时候,发现在连接互联网的同时,是无法同时使用专线的。要使用的时候只能一下连wifi一下连专线,相当的不方便。 方法: 第一步,以管理员权限打开cmd,不然可能会出现用…

【网络】内网访问外网和外网访问内网的原理

原文地址 公有 IP 和私有 IP 的区别 首先,我们需要了解一下什么是公有 IP 和私有 IP ? 公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。…

三阶魔方快速公式

三阶魔方快速公式: 白色做底面。 (二)做第二层棱块。 黄面为顶层,找顶层中不带黄面的棱块,将棱块面对你的颜色转到与中点色块相同处,这两块面对自己,做公式: 远,侧面上…

【玩】三阶魔方公式

每次忘记公式,找到当时记忆的公示都得查很费劲。索性记录一下。 一、基本 1、标注: 一般来说,你可能需要整体地转动魔方来找到合适的是用公式的位置,但是为了简单起见,在使用一条具体公式时,只需要转动魔…

三阶魔方公式速记

最近在玩魔方的过程中,发现魔方真正需要死记硬背的公式只有三个,分别是棱块互换、棱块上翻、角块互换。 本文不是魔方复原教程,只是总结常用的几个公式,不适合新手。 先贴上一个非常强大的网页版魔方 Cuber 1.一层 观察法 2.二层 …

三阶魔方入门级学习

文章目录 起因:认识魔方:复原步骤:任务一:拼好底层(设底层为白)目标1:在顶层(黄)中心块周围安排四个白色棱块目标2:将目前在顶层的四个白色棱块分别对准侧面中…

php编程三阶魔方,三阶魔方还原教程

大家好,或许在你们会感觉魔方的还原很难,其实不然。今天我来为大家带来三阶魔方的简单还原公式,让你能够快速上手,并且能够理解学会。 话不多说,首先我来介绍一下魔方的六个面:白,黄,红,橙,绿,蓝(白-黄,红-橙,绿-蓝)图如下: 打开搜狗搜索APP,查看更多精彩资讯 我…