导图社区 软件性能测试基础
计算机像我们人体一样需要体检,它的体检是“软件性能测试”,最基础的我们要了解性能测试流程,类型,指标与性能调优
提示: 本内容由社区用户上传并分享。平台不对内容的真实性、合法性、知识产权归属及是否侵害第三方权利进行事前审核或保证。本内容可能包含受版权保护的图片、字体或其他第三方素材,使用前请自行确认授权范围。
总结了向上管理的8个关键:明确需求、站对立场、分清矛盾、适当示弱、解决问题、提供信息、执行命令、理解与支持以及每个关键的注意点
总结了私域运营引流入口最强攻略的8个方面:微信、抖音、小红书、微博、知乎、B站、今日头条、快手,列出了每个方面的引流入口
总结了裂变增长的底层逻辑,主要从社交驱动、效率驱动、信任驱动、资源驱动 四个方面以及每个方面的实现,简单的讲述
社区模板帮助中心,点此进入>>
计算机操作系统思维导图
简单介绍MYSQL数据库软件的基本命令
计算机基础知识
.net学习总结
python基础知识点简单总结
序列类型的方法
管理信息系统
Python3.0入门知识思维导图
java 从入门到精通(第四版本)
软考架构设计师
软件性能测试基础
性能测试流程
1、分析性能需求、确认性能指标
2、制定测试计划,明确测试时间
3、编写测试用例
性能测试的策略(指定一个小目标,具体想做什么)
压力测试:每次递增,看系统不能接受的程度(一次性吃多少馒头)
负载测试:每次递增,看系统能接受的最大程度(压死骆驼最后一个稻草)
稳定性测试:长时间运行负载最大程度(看需求)
基本信息(性能测试的网址,谁来执行,谁来监控,执行时间)
业务流程(录制的流程,脚本增强的节点位置)
执行策略(一共需要模拟用户数,每个几秒进场几人,持续时间,每隔几秒退出几人)
监控指标的预期结果:cpu(不能大于75%)、内存占用率(不能大于80%)、响应时间(1.3.5.7/秒)、TPS(每秒中服务器处理事务的字节数)、错误数量(控制在0%)、网络延迟时间、每秒点击次数
4、搭建测试环境、准备测试数据
5、编写性能测试脚本
6、性能测试脚本增强(检查点、参数化、关联、集合点、事务、调整思考时间)
7、设计测试场景、运行测试脚本、监控服务器
8、分析测试结果,收集相关的日志提单给开发
9、回归性能测试
性能测试类型
负载测试
负载测试是指逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能够承受的最大负载量。
负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员身体状况保持正常的情况下所能举起的最大重量。
对于负载测试来说,前提是满足性能指标要求。
例如一个软件系统的响应时间要求不超过2s,则在这个前提下,不断增加用户访问量,当访问量超过1万人时,系统的响应时间就会变慢,超过2s,从而可以确定系统响应时间不超过2s的前提下最大负载量是1万人。
压力测试
压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力。
压力测试与负载测试是有区别的,负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载,而压力测试则是使系统性能达到极限的状态。
例如软件系统正常的响应时间为2s,负载测试确定访问量超过1万时响应时间变慢。
压力测试则继续增加用户访问量观察系统的性能变化,当用户增加到2万时系统响应时间为3s,当用户增加到3万时响应时间为4s,当用户增加到4万时,系统崩溃无法响应。由此确定系统能承受的最大访问量为4万。
压力测试可以揭露那些只有在高负载条件下才会出现的Bug(缺陷),如同步问题、内存泄漏等
并发测试
并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其他性能问题。
并发测试一般没有标准,只是测试并发时会不会出现意外情况,几乎所有的性能测试都会涉及一些并发测试
例如多个用户同时访问某一条件数据,多个用户同时在更新数据,那么数据库可能就会出现访问错误、写人错误等异常情况。
配置测试
配置测试是指调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。
配置测试不改变代码,只改变软硬件配置,例如安装版本更高的数据库、配置性能更好的CPU和内存等,通过更改外部配置来提高软件的性能。
可靠性测试
可靠性测试是指给系统加载一定的业务压力,使其持续运行一段时间(如7×24h),测试系统在这种条件下是否能够稳定运行。
由于加载有业务压力且运行时间较长,因此可靠性测试通常可以检测出系统是否有内存泄漏等问题。
容量测试
容量测试是指在一定的软硬件及网络环境下,测试系统所能支持的最大用户数、最大存储量等。
容量测试通常与数据库、系统资源(如CPU、内存、磁盘等)有关,用于规划将来需求增长(如用户增长、业务量增加等)时,对数据库和系统资源的优化。
性能测试指标
响应时间
响应时间( Response Time)是指系统对用户请求做出响应所需要的时间。
这个时间是指用户从软件客户端发出请求到用户接收到返回数据的整个过程所需要的时间,包括各种中间件(如服务器、数据库等)的处理时间
系统的响应时间会随着访问量的增加、业务量的增长等变长,一般在性能测试时,除了测试系统的正常响应时间是否达到要求之外,还会测试在一定压力下系统响应时间的变化。
吞吐量
吞吐量( Throughput)是指单位时间内系统能够完成的工作量,它衡量的是软件系统服务器的处理能力。
吞吐量的度量单位可以是请求数/秒、页面数/秒、访问人数/天、处理业务数/小时等
吞吐量是软件系统衡量自身负载能力的一个很重要的指标,吞吐量越大,系统单位时间内处理的数据就越多,系统的负载能力就越强。
并发用户数
并发用户数是指同一时间请求和访问的用户数量。
例如对于某一软件,同时有100个用户请求登录,则其并发用户数就是100。
并发用户数量越大,对系统的性能影响越大,并发用户数量较大可能会导致系统响应变慢、系统不稳定等。
软件系统在设计时必须要考虑并发访问的情况,测试工程师在进行性能测试时也必须进行并发访问的测试。
TPS( Transaction per Second)
TPS是指系统每秒钟能够处理的事务和交易的数量,它是衡量系统处理能力的重要指标
点击率( Hits per Second)
点击率是指用户每秒向Web服务器提交的HP请求数,这个指标是web应用特有的个性能指标
通过点击率可以评估用户产生的负载量,并且可以判断系统是否稳定。
点击率只是一个参考指标,帮助衡量Web服务器的性能。
资源利用率
资源利用率是指软件对系统资源的使用情况,包括CPU利用率、内存利用率、磁盘利用率等。
资源利用率是分析软件性能瓶颈的重要参数。
例如某一个软件,预期最大访问量为1万,但是当达到6000访问量时内存利用率就已经达到80%制了访问量的增加,此时就需要考虑软件是否有内存泄漏等缺陷,从而进行优化。
性能调优
找到性能瓶颈
性能瓶颈定义:导致系统TPS低、响应时间长、资源(CPU、内存、网络)占用高等问题的关键程序模块。提升该程序模块的性能,可以大幅度改善性能。
常见的性能瓶颈原因包括:数据库慢查询SQL、日志打印、xml大报文解析和格式转换、复杂业务逻辑、锁竞争等。
如何找到性能瓶颈
使用LoadRunner给每个接口的增加事务,记录其响应时间和TPS,最慢的那个接口往往是瓶颈;
分析慢操作的日志,查看是哪个操作耗时最长;
分析数据库快照,看是否有执行较慢或者全表扫描的SQL;
通过Javacore查看线程正在执行的代码,是大部分阻塞在IO上,还是大部分在进行计算。针对不同的问题,使用不同的分析工具。
Javacore 是一个当前 JVM 运行状态的快照。通过对 Javacore 的分析,可以了解在 JVM 中运行的应用程序的当前状态,比如是否“卡”在某一点上,或在某些代码上运行时间太长。
性能优化原则
先优化瓶颈问题;
方案简单,尽量不引入更多复杂性,尽量不降低业务体验;
满足系统性能要求即可,不引入新的bug。