性能测试中QPS和TPS区别

QPS:Queries Per Second,顾名思义:“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

TPS处理流程:

Tps即每秒处理事务数,包括了

1、用户请求服务器

2、服务器自己的内部查询等处理

3、服务器返回给用户

这三个过程,每秒能够完成N个这三个过程,Tps也就是3;

QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中。每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准

一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS等于QPS,否则,TPS不等于QPS

最后感谢每一个认真阅读我文章的人!作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望能给你前进的路上带来帮助。如果你用得到的话可以直接拿走:

软件测试资料领取:[内部资源] 想拿年薪40W+的软件测试人员,这份资料必须领取~

软件测试面试刷题工具领取:软件测试面试刷题【800道面试题+答案免费刷】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

### 使用 JMeter 测量 QPS TPS #### 配置环境 为了使用 JMeter 进行性能测试并计算 QPS TPS,首先需要完成 JMeter 的安装基本配置。可以从官方提供的链接下载最新版本的 JMeter[^3]。 #### 创建测试计划 在 JMeter 中创建一个新的测试计划,并按照以下步骤设置: 1. **线程组配置** - 添加一个线程组(Thread Group),用于定义虚拟用户的数量以及它们的行为模式。 - 设置 `Number of Threads` 来指定并发用户数。 - 设置 `Ramp-Up Period (in seconds)` 定义启动所有线程所需的时间。 - 设置循环次数或者持续时间以控制测试运行周期。 2. **HTTP 请求采样器** - 在线程组下添加 HTTP Request Sampler 或者其他类型的请求采样器,具体取决于目标应用程序的服务类型。 - 填写 URL 地址其他必要的参数信息以便模拟真实场景下的访问行为。 #### 计算 TPS 通过观察聚合报告中的 Throughput 字段可以得到系统的事务处理能力即 TPS 值。此字段表示单位时间内成功执行了多少次操作或交易[^2]。 ```plaintext TPS = 样本数 / 运行时间 ``` #### 获取 QPS 数据 虽然 JMeter 自身并没有直接提供名为 “QPS” 的指标项,但是可以通过分析响应时间请求数目间接推导出来。通常情况下,在稳定状态下如果忽略网络延迟等因素影响,则有如下关系成立: ```plaintext QPS ≈ 成功样本数 ÷ 实际耗时(秒) ``` 需要注意的是实际应用当中可能还需要考虑失败率等问题从而调整上述公式的适用范围。 以下是基于以上理论的一个 Python 小脚本来帮助快速估算这两个重要数值: ```python def calculate_tps_qps(total_samples, elapsed_time_in_seconds): tps = total_samples / elapsed_time_in_seconds qps = tps # Assuming each transaction corresponds to one query under ideal conditions. return round(tps, 2), round(qps, 2) total_samples = float(input("Enter the number of successful samples: ")) elapsed_time_in_seconds = float(input("Enter test duration in seconds: ")) tps_value, qps_value = calculate_tps_qps(total_samples, elapsed_time_in_seconds) print(f"Calculated TPS: {tps_value}") print(f"Estimated QPS: {qps_value}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值