Locust框架
locust特点:Ø 基于Python的开源负载测试工具Ø 支持多种操作系统Ø 支持二次开发Ø 能够模拟更多用户Ø 基于协程(微线程)的并发有python环境,就可以编写,不需要安装其他的工具支持分布式,可扩展使用比较灵活,可以解决复杂业务场景下的请求依赖对代码能力有一定要求开发完成后,可以展示一个web界面,在web界面上操作并执行性能测试locust脚本实现步骤:1.定义任务:发送http接口
locust特点:
Ø 基于Python的开源负载测试工具
Ø 支持多种操作系统
Ø 支持二次开发
Ø 能够模拟更多用户
Ø 基于协程(微线程)的并发
有python环境,就可以编写,不需要安装其他的工具
支持分布式,可扩展
使用比较灵活,可以解决复杂业务场景下的请求依赖
对代码能力有一定要求
开发完成后,可以展示一个web界面,在web界面上操作并执行性能测试
locust脚本实现步骤:
1.定义任务:发送http接口请求
2.定位任务集:定义一个用户行为,包含多个Http请求(即具体的任务)
3.定义Locust类:Locust类代表用户,用户会对应具体的用户行为(即任务集)
首先定义任务
#用户登录
def index(1):
1.client.post("url",data={"username": "admin", "password": "123456"})
#查询首页
def index(1):
1.client.get("/index")
# 定义任务
# 登录请求
def login(l):
l.client.post("/bms/login",data={"username":"admin","password":"123456"})
# 首页
def index(l):
l.client.get("/bms/index")
# 获取用户信息
def profile(l):
l.client.get("/bms/profile")
# 退出
def logout(l):
l.client.post("/bms/logout")
其次定义任务集
定义方式:
• 定义一个用户行为类,要继承TaskSet类,表示一个任务集
• tasks:用来添加任务,它是一个dict类型,key表示任务的方法名,
value表示挑选执行的权重,数值越大执行频率越高
• on_start:前置方法(前置任务),在所有任务之前调用
• on_stop:后置方法(后置任务),当任务集停止时调用
class UserBehavior(TaskSet):
tasks={index:3,profile:1}
def on_start(self):
login(self)
def on_stop(self):
logout(self)
定义locust类:
用户类,通过用户来执行定义好的任务集
class WebUser(HttpUser):
task_set=task(UserBehavior)
min_wait=1000
max_wait=2000
host="网址"
weight=10
运行命令 locust -f 文件名.py
更多推荐
所有评论(0)