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   

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐