之前在运行Locust测试时,一般步骤是这样的:
创建好Locust脚本(locust file),模拟好场景
在命令行运行Locust脚本,如下:
locust -f locust_file.py
复制
然后打开web UI,在UI上设置测试参数,比如用户数,ramp up rate等。
如上你会发现,整体步骤还是有些繁琐的。其实Locust提供了比上述方式更简洁的方式,可以将性能测试相关的配置,运行等都集中在脚本中去实现。具体,可以参考如下脚本(Locust 版本1.1.1):
import gevent
from locust import HttpUser,task,between
from locust.env import Environment
from locust.stats import stats_printer
from locust.log import setup_logging
setup_logging("INFO",None)
class WebUser(HttpUser):
wait_time = between(1,5)
host = 'https://blog.51cto.com'
@task
def open_blog1(self):
with self.client.get('/13734261/2538770',catch_response=True) as res:
if res.status_code == 200:
res.success()
@task
def open_blog2(self):
with self.client.get('/13734261/2538745',catch_response=True) as res:
if res.status_code == 200:
res.success()
#创建环境和runner
env = Environment(user_classes=[WebUser,])
env.create_local_runner()
#start a WebUI instance
env.create_web_ui("127.0.0.1",8001)
#开启了协程,会定期打印runner状态
gevent.spawn(stats_printer(env.stats))
#开启测试,开启用户数为1
env.runner.start(1,hatch_rate=10)
# 设置100秒后,然后停止测试
gevent.spawn_later(100,lambda: env.runner.quit())
#等待greenlet结束
env.runner.greenlet.join()
#结束locust webUI
env.web_ui.stop()
复制
测试输出结果如下,测试过程中,也会定期输出这样的测试结果表格,一般是隔几秒输出一次吧。
Name # reqs # fails Avg Min Max | Median req/s failures/s
--------------------------------------------------------------------------------------------------------------------------------------------
GET /13734261/2538745 13 0(0.00%) 300 183 542 | 280 0.10 0.00
GET /13734261/2538770 17 0(0.00%) 376 199 931 | 270 0.20 0.00
--------------------------------------------------------------------------------------------------------------------------------------------
Aggregated 30 0(0.00%) 343 183 931 | 270 0.30 0.00
复制
这样的测试步骤改进,可以省略如下步骤:
在命令行运行测试脚本
在浏览器中webUI上设置测试参数并监控测试运行过程。
文章转载自TimTest,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家观点】罗敏:从理论到真实SQL,感受DeepSeek如何做性能优化
墨天轮编辑部
1237次阅读
2025-03-06 16:45:38
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1216次阅读
2025-03-13 11:40:53
2025年2月国产数据库大事记
墨天轮编辑部
954次阅读
2025-03-05 12:27:34
2025年2月国产数据库中标情况一览:GoldenDB 3500+万!达梦近千万!
通讯员
846次阅读
2025-03-06 11:40:20
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
436次阅读
2025-03-13 14:38:19
AI的优化能力,取决于你问问题的能力!
潇湘秦
407次阅读
2025-03-11 11:18:22
优炫数据库成功应用于国家电投集团青海海南州新能源电厂!
优炫软件
335次阅读
2025-03-21 10:34:08
达梦数据与法本信息签署战略合作协议
达梦数据
280次阅读
2025-03-06 09:26:57
国产化+性能王炸!这套国产方案让 3.5T 数据 5 小时“无感搬家”
YMatrix
266次阅读
2025-03-13 09:51:26
IBM收购数据库厂商DataStax:瞄准向量和AI搜索
深度数据云
256次阅读
2025-02-28 12:04:04