搞懂性能指标专业术语,性能面试不再懵圈

本贴最后更新于 818 天前,其中的信息可能已经时移世改

一、性能测试分类

性能测试: 使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。包含负载和压力测试

负载测试: 系统在不同负载下的表现,通过该项测试可以寻求到系统在不同负载下的性能变化曲线,从而寻求到性能的拐点。例如负载测试时,在只不断递增并发用户数时,观察各项性能指标的变化规律,找到系统能达到的最大TPS,并且观察此时系统处理的平均响应时间,各项系统资源和硬件资源的消耗情况。

压力测试: 系统在高负载下的性能表现,该项测试主要为了寻求系统能够承受的最大负载以及此时系统的吞吐率,通过该测试也可以发现系统在超高负载下是否会出现崩溃而无法访问,以及在系统负载减小后,系统性能能否自动恢复。

基准测试: 针对待测系统开发中的版本执行的测试,采集各项性能指标作为后期版本性能的对比。

稳定性测试: 以正常负载或略高于正常负载来对系统进行长时间的测试,检测系统是否可以长久稳定运行,以及系统的各项性能指标会不会随着时间发生明显变化。

扩展性测试: 通常用于新上线的系统或新搭建的系统环境,通过先测试单台服务器的处理能力,然后慢慢增加服务器的数量,测试集群环境下单台服务器的处理能力是否有损耗,集群环境的性能处理能力是否可以呈现稳定增加。

二、性能测试场景

单场景: 指的是只涉及单个业务流程的场景,目的是测试系统的单个业务处理能力是否达到预期,并且得到系统资源利用正常情况下的最大TPS、平均响应时间等性能指标。

业务场景: 指的是系统的业务处理流程,描述具体的用户行为,通过对用户行为进行分析,以划出不同的业务场景,是性能测试时测试场景设计的重要来源。

混合场景: 测试场景中设计多个业务流程,并且对每个业务流程在混合的业务流程中占的比重会不同,该比重一般根据实际的业务流程来设定,尽可能符合实际的业务需要。该测试场景的目的是为了测试系统的混合业务处理能力是否满足预期要求,并且评估系统的混合业务处理容量最大能达到多少。

三、性能测试指标

衡量一个系统性能的好坏,在性能测试中会使用一些性能指标来进行分析和描述,以下是一些最常用的性能指标。

事务: 是自定义的某个操作或者一组操作的集合。例如:一个登录页面,输入用户名和密码,从单击登录按钮开始到登录完成页面跳转,并且新的页面完全加载完成,这一个操作定义为事务。

PV: Page View 即页面的浏览量或者点击量,用户每次对系统或者网站中任何页面的访问均会被记录一次,用户如果对统一页面进行多次访问,访问量就会累计+1。PV一般是衡量电子商务网站性能容量的重要指标。

UV: Unique Visitor 即系统的独立访客,访问系统网站的一台电脑客户端(IP),为一个访客。

点击率(hit): 每秒的页面点击数。客户端每秒像服务端提交的请求数,在性能测试中,一般不测静态请求(如Js、css、图片文件等),静态请求走缓存,不需要服务器处理。所以hit通常是指动态请求。

埋点: 又称事件追踪,即对用户行为进行分析,用户在哪个页面点击了,点击了多少次?在哪个页面停留了多久?搜索什么物品?都会统计出来。然后做大数据分析,根据你搜索分析你的年龄层次、最近想要购买什么,从而精准推送你需要的东西,提高成交率。(埋点的数据,一般都是由运营去做大数据分析)

并发用户数: 在真实的用户操作中,用户的每个相邻操作之间都会有一定的间隔时间(称之为用户思考时间),所以并发用户分为绝对并发和相对并发。单就性能指标而言,系统的并发用户数是指系统可以同时承载的、正常使用系统功能的用户总数量。

------ 绝对并发:指某一个时间点同时一起向服务器发出请求的并发用户数。--- 秒杀商品

------ 相对并发:指一段时间内向服务器发出请求的并发用户总数。

响应时间RT: 事务处理的响应时间。请求或者某个操作从发出的时间到收到服务器响应的时间的差值

TPS:每秒处理的事务数 。系统在单位时间内处理客户端请求的数量

QPS:每秒查询率 。对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,不考虑外界因素

吞吐量: 是指系统在单位时间内处理客户端请求的数量,从不同的角度看,吞吐量的计算方式可以不一样。

(1)从业务角度:吞吐量可以用请求数/s、页面数/s等来进行衡量计算。

(2)从网络角度:吞吐量可以用字节/s来进行衡量计算。

(3)从应用角度:吞吐量指标反映的是服务器承受的压力,及系统的负载能力。

一个系统的吞吐量一般与一个请求处理对CPU的消耗、带宽的消耗、IO和内存资源的消耗情况紧密相连。

资源开销 :每个请求或者事务对系统资源的消耗,用来衡量请求或者事务对资源的消耗程度。

幂等性: 就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个例子,用户购买XX商品后支付,第一次支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了。用户再次进行支付,此时会进行第二次扣款,返回结果成功。相当于用户在购买XX商品时,付了两次钱....这种情况需要做幂等性测试,如果第一次已经扣除,第二次扣除时,业务需要回滚,不再扣除。

2 操作
bianke 在 2022-08-19 16:52:15 更新了该帖
bianke 在 2022-08-19 16:51:14 更新了该帖
回帖
请输入回帖内容 ...