Locust相关

一、Locust 进行接口性能测试

  1、特点:

    基于Python的开源负载测试工具

    支持多操作系统

    支持二次开发

    能够模拟更多用户

    基于协程(微线程)的并发

  2、Locust 与 JMeter 对比

   3、locust 安装

    前提:已经安装pycharm、Python 3.5 以上版本

    在线安装:pip install locustio==0.12.2

    离线安装

    Pycharm 安装

 

二、locust 测试脚本实现步骤

  1、定义任务:发送 HTTP 接口请求

  2、定义任务集:定义一个用户行为,包含发送多个 HTTP 请求(即具体任务)

  3、定义 locust 类:locust 类代表用户,用户会对应具体的用户行为(即任务集)

 

三、案例:

  定义任务

    locust 里发送请求是基于 requests 实现的,请求方法、参数、响应对象和 requesrts 使用方式一样。

'''
定义任务
'''

#登录
def login(l):
    l.client.post("/login",data={"username":"admin","password":"123456"})
    
#首页
def index(l):
    l.client.get("/index")
    
#获取用户信息
def profile(l):
    l.client.get("/profile")
    
#退出
def logout(l):
    l.client.post("logout")
    

  

  定义任务集(tasks里面,表示每 发送 3 个index,发送一个 1 profile ,比例为 3:1)

 

from locust import TaskSet
'''
定义任务
'''
#登录
def login(l):
    l.client.post("/login",data={"username":"admin","password":"123456"})
#首页
def index(l):
    l.client.get("/index")
#获取用户信息
def profile(l):
    l.client.get("/profile")
#退出
def logout(l):
    l.client.post("logout")

#定义任务集
class UserBehavier(TaskSet):
    tasks = {index:3,profile:1}     #类属性,index 和 profile 为任务名,且发送比例为 3:1

    def on_start(self):               #相当于setUpClass
        login(self)

    def on_stop(self):                #相当于tearDownClass
        logout(self)

 

  定义一个 locust 任务类,这个类代表用户

 

from locust import TaskSet
from locust import HttpLocust
'''
定义任务
'''
#登录
def login(l):
    l.client.post("/login",data={"username":"admin","password":"123456"})
#首页
def index(l):
    l.client.get("/index")
#获取用户信息
def profile(l):
    l.client.get("/profile")
#退出
def logout(l):
    l.client.post("logout")

#定义任务集
class UserBehavier(TaskSet):
    tasks = {index:3,profile:1}     #类属性,index 和 profile 为任务名,且发送比例为 3:1

    def on_start(self):               #相当于setUpClass
        login(self)

    def on_stop(self):                #相当于tearDownClass
        logout(self)

#定义locust用户类
class WebsiteUser(HttpLocust):
    task_set = UserBehavier
    min_wait = 500
    max_wait = 1000
    host = "http://bms-test.itheima.net/bms"     #这是主域名,拼接上面任务的请求的后缀,即组成一个完整的HTTP请求域名
    weight = 10                                  #该用户的权重,当有多个用户时,根据总数分配权重。

 

三、locust 运行脚本

  运行命令:

    locust -f locust_files/my_locust_file.py --host=http://example.com

    注意:-f 指定的是脚本的 py 文件名。而 --host 指定的是需要查看locuct的网址,当运行该脚本时,在终端运行后,去浏览器登录该网址,会发现locust界面

 

 

 四、locust 执行脚本的日志介绍

  1、报告介绍:

 

  2、各行参数介绍

 

posted @ 2023-04-19 21:36  新入世界的小白  阅读(45)  评论(0编辑  收藏  举报