沐雪专业网站建设,wordpress 关掉缓存,广州软件开发工资一般多少,手机网站 自适应屏幕性能测试的概念
定义#xff1a;软件的性能是软件的一种非功能特性#xff0c;它关注的不是软件是否能够完成特定的功能#xff0c;而是在完成该功能时展示出来的及时性。
由定义可知性能关注的是软件的非功能特性#xff0c;所以一般来说性能测试介入的时机是在功能测试…性能测试的概念
定义软件的性能是软件的一种非功能特性它关注的不是软件是否能够完成特定的功能而是在完成该功能时展示出来的及时性。
由定义可知性能关注的是软件的非功能特性所以一般来说性能测试介入的时机是在功能测试完成之后。在系统基础功能测试验证完成、系统趋于稳定的情况下才会进行性能测试否则性能测试是无意义的。另外由定义中的及时性可知性能也是一种指标可以用时间或其它指标来衡量通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求这就是性能测试。
性能测试定义指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
jmeter性能测试视频教程字节性能测试工程师视频教程年薪30W真的很简单_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1N8411y7Wr/?spm_id_from333.999.0.0 性能测试类型 基准测试在给系统施加较低压力时查看系统的运行状况并记录相关数做为基础参考负载测试是指对系统不断地增加压力或增加一定压力下的持续时间直到- 系统的某项或多项性能指标达到安全临界值不断加压使系统达到瓶颈为调优提供参考数据。压力测试 1稳定性压力测试在不同的给定的条件下比如内存的使用一定时间段内有多少请求等系统表现出来的处理反应能力这里会考虑系统的容错能力恢复能力 2破坏性压力测试不断加压直至系统崩溃挂掉来得出系统的最大承受能力在哪儿稳定性测试在给系统加载一定业务压力的情况下使系统运行一段时间以此检测系统是否稳定。并发测试测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题失效恢复测试针对有多余备份和负载均衡的系统设计,检测如果系统局部发生故障系统能否继续使用配置测试通过对被测系统软硬件环境的调整了解各种不同环境对系统性能影响的程度从而找到系统各项资源的最优分配原则 image.png
性能测试应用场景领域
性能测试应用场景领域主要有 能力验证、规划能力、性能调优、缺陷发现、性能基准比较
下表简单介绍和对比了这几个场景的各自用途和特点 image.png
下表为性能测试应用领域与测试方法关联 image.png
性能测试常用的指标
1、响应时间Response Time
定义从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
计算方法Response time 网络时间 应用程序处理时间
合理的响应时间 2/5/10 2秒之内给客户响应被用户认为是非常有吸引力的5秒之内比较糟糕10秒之内糟糕的用户体验超过10秒请求失败
响应时间-负载对应关系 image.png
图中拐点说明
1、响应时间突然增加
2、意味着系统的一种或多种资源利用达到的极限
3、通常可以利用拐点来进行性能测试分析与定位
2、吞吐量
定义单位时间内系统处理的客户端请求的数量
计算方法Throughput (number of requests) / (total time)
吞吐量-负载对应关系
①上升阶段吞吐量随着负载的增加而增加吞吐量和负载成正比
②平稳阶段吞吐量随着负载的增加而保持稳定无太大变化或波动
③下降阶段吞吐量随着负载的增加而下降吞吐量和负载成反比 image.png
a1面积越大说明系统的性能能力越强a2面积越大说明系统稳定性越好a3面积越大说明系统的容错能力越好
吞吐率
吞吐量/传输时间即单位时间内网络上传输的数据量也可以指单位时间内处理客户请求数量它是衡量网络性能的重要指标。
通常情况下吞吐率用“字节数/秒”来衡量当然也可以用“请求数/秒”和“页面数/秒”来衡量
3、并发数
①狭义上的并发所有用户在同一时间点进行同样的操作一般指同一类型的业务场景比如1000个用户同时登陆系统
②广义上的并发多个用户与系统发生了交互这些业务场景可以是相同的也可以是不同的交叉请求和处理较多
4、资源利用率
资源指标与硬件资源消耗直接相关而系统指标则与用户场景及需求直接相关 image.png
资源指标 CPU使用率指用户进程与系统进程消耗的CPU时间百分比长时间情况下一般可接受上限不超过85%
内存利用率内存利用率1-空闲内存/总内存大小*100%一般至少有10%可用内存内存使用率可接受上限为85%
磁盘I/O: 磁盘主要用于存取数据因此当说到IO操作的时候就会存在两种相对应的操作存数据的时候对应的是写IO操作取数据的时候对应的是是读IO操作一般使用% Disk Time磁盘用于读写操作所占用的时间百分比度量磁盘读写性能
网络带宽一般使用计数器Bytes Total/sec来度量其表示为发送和接收字节的速率包括帧字符在内判断网络连接速度是否是瓶颈可以用该计数器的值和目前网络的带宽比较
系统指标 并发用户数单位时间内与系统发生交互的用户数
在线用户数某段时间内访问系统的用户数这些用户并不一定同时向系统提交请求
平均响应时间系统处理事务的响应时间的平均值事务的响应时间是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间
事务成功率性能测试中定义事务用于度量一个或者多个业务流程的性能指标如用户登录、保存订单、提交订单操作均可定义为事务单位时间内系统可以成功完成多少个定义的事务在一定程度上反应了系统的处理能力一般以事务成功率来度量
超时错误率主要指事务由于超时或系统内部其它错误导致失败占总事务的比率
资源利用-负载对应关系 image.png
图中拐点说明
1、服务器某件资源使用逐渐达到饱和
2、通常可以利用拐点来进行性能测试分析与定位
5、其它常用概念
TPS
Transaction Per Second每秒事务数指服务器在单位时间内秒可以处理的事务数量一般以request/second为单位
QPS是查询而TPS是事务事务是查询的入口也包含其他类型的业务场景因此QPS应该是TPS的子集
QPS
Query Per Second每秒查询率指服务器在单位时间内秒处理的查询请求速率
TPS和QPS都是衡量系统处理能力的重要指标一般和并发结合起来判断系统的处理能力
Thinking Time
思考时间在性能测试中模拟用户的真实操作场景。用户操作的事务与事务之间是有一定间隔的此时间内是不对服务器产生压力的引入这个概念是为了并发测试有交叉业务场景时业务场景比率更符合真实业务场景
PV
Page View页面浏览量通常是衡量一个页面甚至网站流量的重要指标
细分的话有独立访问者数量、重复访问者数量、单独页面访问数量、用户停留时间等类型
RT/ART
Response Time/average Response Time响应时间/平均响应时间指一个事务花费多长时间完成
一般来说性能测试中平均响应时间更有代表意义。细分的话还有最小最大响应时间50%、90%用户响应时间等 jmeter性能测试视频教程字节性能测试工程师视频教程年薪30W真的很简单_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1N8411y7Wr/?spm_id_from333.999.0.0 性能测试流程
需求分析
需要分析的系统信息 image.png
需要分析的业务信息 image.png
性能需求评估 在实施性能测试之前我们需要对被测系统做相应的评估主要目的是明确是否需要做性能测试。如果确定需要做性能测试需要进一步确立性能测试点和指标明确该测什么、性能指标是多少测试通过or不通过的标准性能指标也会根据情况评估要求被测系统能满足将来一定时间段的业务压力。 业务角度: 系统是公司内部 or 对外系统使用的人数的多少 系统角度 a系统架构b数据库要求c系统特殊要求 确定性能测试点 关键业务 确定被测项目是否属于关键业务有哪些主要的业务逻辑点特别是跟交易相关的功能点。例如转账扣款等接口。如果项目或功能点不属于关键业务或关键业务点 日请求量 确定被测项目各功能点的日请求量可以统计不同时间粒度下的请求量如小时日周月。如果日请求量很高系统压力很大而且又是关键业务该项目需要做性能测试而且关键业务点可以被确定为性能点 逻辑复杂度 判定被测项目各功能点的逻辑复杂度。如果一个主要业务的日请求量不高但是逻辑很复杂则也需要通过性能测试。原因是在分布式方式的调用中当某一个环节响应较慢就会影响到其它环节造成雪崩效应。 运营推广活动 根据运营的推广计划来判定待测系统未来的压力。未雨绸缪、防患于未然、降低运营风险是性能测试的主要目标。被测系统的性能不仅能满足当前压力更需要满足未来一定时间段内的压力。因此事先了解运营推广计划对性能点的制定有很大的作用。例如运营计划做活动要求系统每天能支撑多少 PV、多少 UV或者一个季度后需要能支撑多大的访问量等等数据。当新项目或功能点属于运营重点推广计划范畴之内则该项目或功能点也需要做性能测试。
建立性能指标 a.选取核心业务流程重要程度/频繁 b.并发用户数 c.事物吞吐需求 d.响应时间需求 e.系统占用资源需求 f.可扩展性需求 建立系统负载模型 业务层面 a核心业务流程吞吐率 b高峰期业务分布时段 系统负载 a 高峰/平常场景吞吐率 bCPU/IO/MEM/NETWORK 数据来源 a服务器端监控 b数据库日志 c用户提出需求
制定测试计划的实施时间和方案
预设本次性能测试各子模块的起止时间和结束时间 测试环境的配置局域网虚拟机操纵系统数据库中间件 参与人员谁负责哪些任务测试策略。 产出测试方案分析结果
搭建测试环境
测试机环境 执行机环境这个就是用来生成负载的执行机通常需要在物理机上运行。 负载工具JDK/Eclipse/LoadRuner or Jmeter或Galting等 监控工具准备性能测试时的服务器资源、JVM、数据库监控工具以便进行后续的性能测试分析与调优 服务器环境 系统运行环境这个通常就是我们的测试环境Linux系统/数据库/应用服务/各种监控工具。 大部分公司的测试环境会低于生产环境同时还需要考虑到不同的硬件配置是否会是制约系统性能的重要因素因此在测试环境中需要部署多个不同的测试环境在不同的硬件配置上检查应用系统的性能配置大概是如下几类 ①数据库服务器 ②应用服务器 ③负载模拟器 ④软件运行环境 平台并对不同配置下系统的测试结果进行分析得出最优结果最适合当前系统的配置 测试场景设计
通过和业务部门沟通以及以往用户操作习惯确定用户操作习惯模式以及不同的场景用户数量操作次数确定测试指标以及性能监控等
测试用例设计和脚本开发
选择LoadRuner或者Jmeter我使用的是Jmeter。
我使用Jmeter的工具进行录制 (PS:能直接写脚本就自己写尽量少录制录制有时候会有干扰)
对脚本进行修改增强脚本让脚本更符合业务逻辑可用性更强。 1参数化用户输入 2关联数据 3增加事物 4增加检查点
调试脚本 1Vugen单次回放 2Vugen多次回放 3Controller单脚本多用户 4Controller多脚本多用户 5查看回放日志
验证脚本 1通过检查点验证 2通过查看后台服务器日志验证 3通过测试系统查看运行后台变化 4利用SQL语句查询/插入/更新/修改查看效果
测试数据准备
获取数据有两种方式
1拉取生产数据尽量保持数据一致以及量级足够 2利用脚本自动生成数据或者利用测试工具生成数据如利用JDBC预埋数据
a负载测试数据并发测试时需要多少数据比如登录场景
bDB数据量大小为了尽量符合生产场景需要模拟线上大量数据情况那么要往数据库里提前插入一定的数据量。
性能测试执行和管理
执行测试脚本
在已部署好的测试环境中按照业务场景和编号按顺序执行我们已经设计好的测试脚本
测试结果记录
根据测试采用的工具不同结果的记录也有不同的形式展现方式折线图统计图表格等现在大多的性能测试工具都提供比较完整的界面图形化的测试结果当然对于服务器的资源使用等情况可以利用一些计数器或第三方监控工具来对其进行记录执行完测试后对结果进行整理分析 image.png
性能测试结果分析与调优
测试环境的系统性能分析
根据之前记录得到的测试结果经过计算与预定的性能指标进行对比确定是否达到了我们需要的结果如未达到查看具体的瓶颈点然后根据瓶颈点的具体数据 瓶颈定位分析 吞吐量二八原则 即80%的业务在20%的时间内完成/正太分布 响应时间2/5/10原则 内存磁盘IO进程网络分析 硬件操作系统中间件应用瓶颈 进行具体情况具体分析 性能调优 时间资源人力资源 硬件资源扩展性影响 硬件设备对系统性能表现的影响分析
配置几个不同的测试环境故可以根据不同测试环境的硬件资源使用状况图进行分析确定瓶颈是再数据库服务器、应用服务器抑或其他方面然后针对性的进行优化等操作
其他影响因素分析
影响系统性能的因素很多可以从用户能感受到的场景分析哪里比较慢哪里速度尚可这里可以根据2\5\8原则对其进行分析 至于其他诸如网络带宽、操作动作、存储池、线程实现、服务器处理机制等一系列的影响因素具体问题具体分析
测试中发现的问题
在性能测试执行过程中可能会发现某些功能上的不足或存在的缺陷以及需要优化的地方需要多次执行测试。
测试报告和跟踪
性能测试报告是性能测试的里程碑通过报告能展示出性能测试的最终成果展示系统性能是否符合需求是否有性能隐患 性能测试报告中需要阐明: 性能测试目标、 性能测试环境、 性能测试数据构造规则、 性能测试策略、 性能测试结果、 性能测试调优说明、 性能测试过程中遇到的问题和解决办法等。 性能测试工程师完成该次性能测试后需要将测试结果进行备案并做为下次性能测试的基线标准具体包括性能测试结果数据、性能测试瓶颈和调优方案等。同时需要将测试过程中遇到的问题包括代码瓶颈、配置项问题、数据问题和沟通问题以及解决办法或解决方案进行知识沉淀。 jmeter性能测试视频教程字节性能测试工程师视频教程年薪30W真的很简单_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1N8411y7Wr/?spm_id_from333.999.0.0