赞
踩
通常指的是确定接口或服务能够处理的最大请求量(吞吐量)和并发用户数,同时保持合理的响应时间和稳定性。
在进行性能测试时,通常会逐步增加并发用户数(或请求频率),以便找到接口或系统的最大QPS值。这个过程中,您会观察到系统的响应时间和请求失败率随着并发量的增加而变化。确定QPS的最大值通常涉及到平衡性能指标和系统的稳定性。
综上考虑确定最大QPS:当响应时间超过预定阈值、错误率升高或资源利用率达到饱和时,即认为找到了系统的最大QPS。这是系统在保持良好性能和稳定性的前提下能够处理的最高请求数。
QPS 的计算公式相对简单:
QPS = 总请求次数 / 请求持续时间(秒)
例如,如果一个服务在 10 秒内处理了 2000 个请求,那么:
QPS = 2000 / 10 = 200
这意味着该服务每秒平均处理 200 个请求。
虽然在表面上看似都产生了每秒 10000 次的请求量,但实际对系统的影响和测试的含义有显著不同:
虽然两种情况下每秒的请求量相同,但从测试的目的和重点来看,它们反映了系统不同方面的性能和扩展性。多用户并发请求的测试更能反映真实世界中服务的并发处理能力和资源管理效率,因此在进行压力测试和性能评估时,应该考虑到测试场景与真实使用场景的匹配度。
一个用 Python 编写的开源负载测试工具,易于编写测试脚本,支持模拟数百万用户并发。
pip install locust
创建一个名为 locustfile.py 的 Python 文件,并在文件中定义用户行为和任务。以下是一个基本的测试脚本示例,它模拟用户访问一个 HTTP API:
from locust import HttpUser, between, task import json import base64 global pic_base64 img_path = './ocr/test_images/1.jpg' with open(img_path,'rb') as pic: pic_base64 = str(base64.b64encode(pic.read()),encoding='utf-8') class WebsiteUser(HttpUser): host = "http://localhost:8080" wait_time = between(1, 5) @task def ocr_task(self): # data = {"img_base64": pic_base64} data = {"key": ["image"], "value": [pic_base64]} headers = {'Content-Type': 'application/json'} self.client.post("/ocr/prediction", data=json.dumps(data), headers=headers)
在包含 locustfile.py 的目录下,打开终端并输入以下命令启动 Locust:
locust
这将启动 Locust 的 web 界面,默认情况下访问地址是 http://localhost:8089 。
打开浏览器,访问 http://localhost:8089 ,然后输入以下信息:
参考链接:https://blog.csdn.net/yuan_ahui/article/details/126272465
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。