什么是性能测试

在这里插入图片描述


一、定义

性能测试是用一定的技术工具找出或验证某些性能指标值的测试

1、工具:

jmeter(用的最多、开源的)、loadrunner(用的不多)

Column 1 jmeter loadrunner
语言 纯java开发 C语言开发
支持应用 对java为主的系统支持较好 支持比较全面
是否收费 开源免费 商业软件
学习成本 应用简单、上手快、java自定义测试计划 功能复杂、学习成本高
协议支持 支持常见的http/ftp/smp等 使用完善的组件进行定制化测试
组件功能 Thread Group,Samplers 一整套完善的测试组件

压测场景支撑:单接口/复杂事务:jmeter场景+逻辑控制器
压力需求:jmeter需求
CI支持:jmeter Jmx场景文件,数据驱动,结构可视化
二次开发需求:jmeter开源插件化思想,支持Thrift、Dubbo等多种协议。可以支持平台化
问题支持:lmeter开放社区、广泛应用

2、找出或验证

从来没有做过性能测试的时候,不确定产品的基本指标值,第一次做的时可以将指标值作为基准值
性能测试不找bug,找确切的输出的性能指标值(响应时间、1s能处理多少个事务(100个用户同时发送请求))

1、找出性能的指标值

响应时间(RT):从发起请求到收到响应的时间
最大并发用户数(秒杀:1s最大支持多少的用户数的请求)
TPS:服务器1s支持多少事务数
资源利用率:硬件资源(cpu、内存、磁盘)

2、验证性能有没有优化

负载测试和压力测试属于广义的性能测试

负载测试:逐步增加并发用户数,发起请求,找到我们系统的最大并发用户数的拐点区间

关键词:逐步加压

日均访问量:刷新一次算一次访问量,并不是有多少人访问

例如:从10个并发用户数开始,每次增加10个用户数,当到130时性能指标值正常,到140时性能指标值下降(响应时间变长)此时拐点区间为130-140;然后再每次增加1个用户,当136正常,137异常,拐点就是136,在最大并发用户数136的性能指标值设置为基准值,在以后版本迭代时,和这个基准值比较即可。

压力测试:通过一定的并发用户数(<=136),持续比较长的时间请求,查看我们服务器的稳定性

关键词:比较大的并发用户数+比较长的时间*24

例如:996能持续多长时间

3、性能测试的顺序

先负载测试(最大并发用户数(指标值),拐点的区间缩小具体的某一个值,再拿到这一个值(136)进行性能的测试),
后压力测试是看稳定性,找出不稳定的原因
比较小的并发用户数:136*20%的并发用户数,运行几个小时
比较大的并发用户数:136的并发用户数,运行几个小时

4、性能测试的必要性研究------关键项评估

二、做性能测试前提

1、生命财产安全要做性能
2、大型新系统----替换之前的旧系统(性能反而更差了)—怎么做?有时间限制—所以做核心的(例如淘宝)
3、架构有重大调整
4、业务量剧增(双十一活动)
5、重大缺陷–影响范围广(小bug不必要做性能测试)
6、一定不要按照需求来搞:因为产品和开发不懂性能测试,他们写的不能相信,对他们给的指标要可量化
7、100w用户,某一个接口做性能测试,可活跃的用户?各个指标值?没有给出具体的值
8、日均访问量为500w:一天中有500w请求,那500w是平均为24h还是8h?一般是按照8h算
500w/8/3600=174TPS ----- 每个人1s发一次请求,但是不可能只发送一次请求,所以
人数*每人每秒请求次数=tps
9、可测性----可以量化为性能指标值

三、基本准则

首先单接口,再多接口
然后多接口构成业务\模块
然后多业务混合
然后再系统
最后全链路

四、性能测试的必备条件

硬件资源相同、软件配置相同的服务器

1、独立服务器

性能测试会消耗大量资源,会影响功能测试、自动化测试(最后出现问题不确定是由于性能的问题,还是bug的问题)

2、生产环境不能用于性能测试

3、独立网络

因为,多用户—发送的数据就比较多----网络会受到影响
不能用无线网络----不能保证稳定—性能指标会受影响

五、并发、并发数、并发用户数

并发数:单位时间内向服务器发起请求的用户数、虚拟用户数
并发用户数:用于模拟真实用户向服务器发起请求的性能测试虚拟用户数量,这个时间点在刷新这个页面,发送的请求就可以不同
系统用户数:只要访问过系统的用户,可能含一次性访问的用户(用户个人信息在系统里面,注册 过)
在线用户数:当前正在访问系统的用户,不一定有压力(这个时间点在用这个系统,包括挂机没有发送请求)
响应时间:从发起请求到收到响应的时间
在这里插入图片描述

六、吞吐量和吞吐率

吞吐量和吞吐率-------------衡量网络的重要指标
吞吐量:事务/s 单位时间内网络通过的事务数
吞吐率:kb/s 单位时间内网络能够传输的数据量大小

事务/s:Transaction per second===TPS; 是硬件和软件的综合的指标,综合能力的体现
服务器每秒钟通过的事务数

当网络没有瓶颈,吞吐量的值=tps值

资源利用率

cpu:一般不能超过80%
内存:一般不能超过80%
磁盘
I/O

猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/129551178
今日推荐