从本篇文章开始,Locust性能测试文章将开始对API调用相关细节进行探讨,所以此后的文章可能会深入到Locust的一些细节。
本篇文章将对User类细节进行探讨。
abstract属性
此属性是为了表明该类是否有子类,如果是True,那表明是有子类,Locust不会加载压力,而只会加载压力到子类上去。我们可以通过一个例子去验证其默认值是什么。测试脚本如下:
from locust import User,between
class MyUser(User):
wait_time = between(3,5)
muser = MyUser(environment=[])
print(muser.abstract)
复制
执行脚本命令:
python script1.py
复制
执行结果:
False
复制
如果把abstract属性设置为true,那么在只有1个User类的情况下,看看最终在跑压力测试场景时的表现吧。测试脚本如下:
from locust import User,between,task
class MyUser(User):
wait_time = between(3,5)
abstract = True
@task
def task1(self):
print("this is task 1.")
复制
在跑压力测试时,会出现如下错误,提示没有User类。如果将abstract值设置为False, 就可以正常执行脚本。
[2021-01-25 08:58:41,353] jasondeMacBook-Pro.local/ERROR/locust.main: No User class found!
复制
那么abstract的目的是为了更好的管理脚本,比如很多测试脚本都需要去执行一些同样的方法/场景,那么就可以将这部分集成到一个User类中,将此类的abstract属性值设置为True.那么其他的User类在继承此类即可。
如上脚本,我们只需要修改一下,添加一个子类就可以将压力测试进行下去。修改后脚本如下。
from locust import User,between,task
class MyUser(User):
wait_time = between(3,5)
abstract = True
@task
def task1(self):
print("this is task 1.")
class Sub_MyUser(MyUser):
pass
复制
只是添加了一个子类,子类中的内容为空,只是这样,就可以成功执行场景中的task方法。
文章转载自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