Locust简介

Locust简介

特点:
· 基于Python的开源负载测试工具
· 支持多种操作系统
· 支持二次开发
· 能够模拟更多用户
· 基于协程(微线程)的并发

安装:

pip install locustio==0.12.2

案例演示

Locust测试脚本实现步骤

1、定义任务 (类似JMeter中的取样器)
· 发送HTTP接口请求。

2、定义任务集(类似JMeter中的事务控制器)
· 定义一个用户行为,包含多个HTTP请求(即具体的任务)。

3、定义Locust类(类似JMeter中的线程组)
· Locust类代表用户,用户会对应具体的用户行为(即任务 集)。

定义任务:

定义接口请求(使用requests库)
· locust里发送请求是基于requests实现的,请求方法、参数、响应对象和requests使用方式一样

# 定义任务
# 登录请求
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:后置方法(后置任务),当任务集停止时调用

from locust import TaskSet
#定义任务集
# 定义任务集
class UserBehavior(TaskSet):    
    tasks = {index:3,profile:1}    
	def on_start(self):
        login(self)
    def on_stop(self):        
        logout(self)

定义Locust类:

​ 定义一个Locust类,这个类代表用户。
定义方式:
• 自定义的Locust类继承了HttpLocust类,这个类代表用户
• task_set:该属性指向TaskSet类,定义用户的行为
• min_wait:用户执行任务之间等待时间的下界,默认值:1000ms
• max_wait:用户执行任务之间等待时间的上界,默认值:1000ms
• host:被测应用的网址,例如:http://bms-test.itheima.net
• weight:用户被选中的概率,权重越大,被选中的机会就越大。默认值:10

#定义用户类
class UserWebsite(HttpLocust):
   task_set = UserBehaiver
   min_wait = 1000
   max_wait = 1500
   host = "http://bms-test.itheima.net/bms"    
   weight = 10

运行Locust脚本:

运行命令:
locust -f locust_files/my_locust_file.py --host=http://example.com
参数介绍:
· -f:用来指定locust文件所在路径
· --host:用来指定测试应用的网址

运行Locust脚本后,打开浏览器并访问:http://localhost:8089。可以看到如下界面:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其他的资源监控界面:
· charts:记录吞吐量QPS、响应时间、并发数,按照时间的统计情况
· Failures:性能测试脚本在执行失败后的记录(断言失败)
· Exceptions:脚本出现异常

其他的资源监控界面:
· charts:记录吞吐量QPS、响应时间、并发数,按照时间的统计情况
· Failures:性能测试脚本在执行失败后的记录(断言失败)
· Exceptions:脚本出现异常
· Download Data:提供下载前面各个部分的性能指标数据

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值