QPS\TPS指的是什么?怎样测试一个接口得QPS

本文介绍了性能指标TPS(每秒事务数)和QPS(每秒查询数)的概念。TPS定义因场景而异,可按接口级或业务级定义;QPS原指MySQL中SQL每秒执行数,现多表示每秒响应查询次数。还介绍用Jmeter压测接口获取QPS的方法及报告解析。

一.概念梳理

1.TPS.

全称: Transactions Per Second , 也就是 每秒事务数
      TPS 是性能领域中一个关键的性能指标概念,它用来描述每秒事务数。我们也知道 TPS 在不同的行业、不同的业务中定义的粒度都是不同的。所以不管你在哪里用 TPS,一定要有一个前提,就是所有相关的人都要知道你的 T 是如何定义的。
      经常有人问TPS中的T 应该如何定义?是指某一个接口还是某个业务流程?这个实在是没有具体的“法律规定”,那就意味着,你想怎么定就怎么定。
      通常情况下,我们会根据场景的目的来定义 TPS 的粒度。
      如果是接口层性能测试,T 可以直接定义为接口级;如果业务级性能测试,T 可以直接定义为每个业务步骤和完整的业务流。我们用一个示意图来说明一下。

在这里插入图片描述
如果我们要单独测试接口 1、2、3,那 T 就是接口级的;
如果我们要从用户的角度来下一个订单,那 1、2、3 应该在一个 T 中,这就是业务级的了。

所以,在我们和别人讲述TPS时,可以先确定好这里的T指的是什么.

2.QPS.

全称:Queries Per Sencond ,每秒查询数

      其实QPS 一开始是用来描述 MySQL 中 SQL

QPS(Queries Per Second)和TPS(Transactions Per Second)是两种常用的性能标,但它们衡量的内容不同。 ### QPS QPS表示每秒查询率,一般用于衡量一个服务器或者系统能够响应的查询请求的数量。这里的“查询”通常的是HTTP请求,比如在Web应用中,用户每次访问页面、提交表单等都会产生一次HTTP请求。 ### TPS TPS表示每秒事务处理数,主要用来衡量计算机系统的事务处理能力。一个事务可以是一个或多个操作组成的完整业务过程。例如,在银行系统中,转账可能涉及扣款、存款、记录日志等多个步骤,这些步骤组合在一起才构成一个完整的事务。 ### 区别 1. **定义范围**:QPS更多关注的是请求层面,而TPS则更注重业务逻辑层面。 2. **应用场景**:QPS常用于评估网站、API接口等网络服务的性能;TPS多见于数据库系统、金融交易系统等领域。 3. **计算复杂度**:通常来说,一个事务可能会包含多个查询请求,因此TPS往往低于QPS。 以下是一个简单的Python代码示例来模拟计算QPSTPS: ```python import time def simulate_requests(num_requests): start_time = time.time() for _ in range(num_requests): # 模拟处理请求 pass end_time = time.time() elapsed_time = end_time - start_time qps = num_requests / elapsed_time return qps def simulate_transactions(num_transactions, operations_per_transaction): total_operations = num_transactions * operations_per_transaction start_time = time.time() for _ in range(total_operations): # 模拟处理操作 pass end_time = time.time() elapsed_time = end_time - start_time tps = num_transactions / elapsed_time return tps # 示例调用 num_requests = 1000 qps = simulate_requests(num_requests) print(f"QPS: {qps}") num_transactions = 100 operations_per_transaction = 5 tps = simulate_transactions(num_transactions, operations_per_transaction) print(f"TPS: {tps}") ``` 上述代码中`simulate_requests`函数模拟了处理一定数量的请求,并计算出QPS。同样地,`simulate_transactions`函数通过模拟每个事务包含的操作数目来计算TPS。 ### 解释 - `simulate_requests`: 这个函数接受一个参数`num_requests`表示要模拟的请求数量,然后记录开始和结束的时间,计算总耗时并得出QPS。 - `simulate_transactions`: 此函数除了需要知道事务的数量外,还需要知道每个事务包含的操作数,从而可以计算总的模拟操作数,进而得到TPS
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员bling

义父,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值