Locust的安装和有无Web界面的使用,附脚本示例供参考

Locust是一个开源的性能测试工具,可以结合python代码(需要有一定的python代码基础)进行用户并发测试,能够测试出一个系统可以并发处理多少个用户,扩展性强

1、安装

需要在python下安装locust模块

  1. 要有python环境(先安装python,可见其他文章:python下载安装以及环境变量配置),我的安装目录是D:\Python382
  2. win+R打开命令行窗口,进入python安装目录下的Scripts文件夹下,或者在D:\Python382\Scripts目录直接输入cmd回车(可直接打开该目录下的命令窗口)
    直接在这上面输入cmd回车
  3. 运行命令:pip install locust
    在这里插入图片描述
  4. 检查安装的命令是:pip show locust
  5. 查看版本的命令是:locust -V
    在这里插入图片描述

2、使用

:需要在有locustfile.py文件的文件夹下运行命令locust,因为默认的性能测试文件就是这个locustfile.py,该文件为python脚本,实例见最后
(我的locustfile.py文件放在了E:\locusttest下)
在这里插入图片描述

否则如下:
在这里插入图片描述

2.1、有Web界面

更直观,操作简单

1、启动
运行命令:locust(最基础的运行方式)
(不能关闭命令窗口,关掉窗口就停止了)
在这里插入图片描述

2、打开
浏览器输入:http://localhost:8089/

Number of total users to simulate:要模拟的总用户数
Spawn rate (users spawned/second):生成率(用户生成/秒)
Host (e.g. http://www.example.com):主机地址(例如 http://www.example.com)
在这里插入图片描述

3、下载报告
Download request statistics CSV:对应的是Statistics
Download failures CSV:对应的是Failures
Download exceptions CSV:对应的是Exceptions
Download Report:包含全部
在这里插入图片描述

2.2、无Web界面

功能较多,较灵活

1、启动运行
直接运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1
(根据需要对应替换掉文件,地址,总用户数,生成率。指定性能测试文件,把locustfile.py替换成你自己的文件即可,但还是要在你文件所在的路径下运行,百度的地址替换成自己的测试地址)

host:主机
headless:无图形模式
-u:要模拟的总用户数
-r:生成率(用户生成/秒)
在这里插入图片描述

2、设置运行时间
无Web界面没有停止按钮,如果没有设置运行时间,就会一直运行下去

加:–run-time 10或者-t 10
运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 --run-time 10
或者:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 -t 10
默认秒:s,分钟:m,小时:h,1分30秒:1m30s
在这里插入图片描述
在这里插入图片描述

3、导出CSV格式报告
加:–csv=example(example是生成的文件前缀,可根据需要修改)
运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 -t 10 --csv=example
在这里插入图片描述

生成四个csv文件
在这里插入图片描述

文件example_stats.csv效果如下
在这里插入图片描述

3、帮助

需要更多用法等,可以查看帮助
运行命令:locust -h
在这里插入图片描述

4、脚本示例

locustfile.py脚本示例,供参考

# 保存为locustfile.py
# coding=utf-8
from locust import HttpUser, TaskSet, task

'''
实现场景:先登录(只登录一次),然后访问->收藏->消息列表
访问收藏页面权重为2,消息列表权重为1

'''


class UserBehavior(TaskSet):
    '''蝗虫行为类'''

    def _login(self):
        '''登录方法'''
        loginUrl = "登录的接口地址"  # 自己修改
        h = {  # 请求头,自己修改
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36",
            "Content-Type": "application/x-www-form-urlencoded",
        }
        body = {  # 请求体,自己修改
            "name": "111",
            "pswd": "123456"
        }
        result = self.client.get(loginUrl, data=body, headers=h)
        print(result.text)
        global token  # 定义一个全局的token
        token = result.json()["data"]["token"]
        print(token)
        assert "登录成功" in result.text  # 判断是否登录成功

    def on_start(self):
        '''任务开始准备工作:只登录一次'''
        self._login()

    # 任务1-收藏
    @task
    def task_my(self):
        print("---访问页面-收藏---")
        h = {  # 请求头,自己修改
            "token": token
        }
        data = {  # 请求体,自己修改
            "favorite": "110"
        }
        r = self.client.get(url="收藏的接口地址", data=data, headers=h)  # 地址自己修改
        print(r.text)
        assert "操作成功" in r.text  # 判断是否收藏成功

    # 任务2-消息列表
    @task
    def task_news(self):
        print("---访问页面-消息列表---")
        h = {  # 请求头,自己修改
            "token": token

        }
        data = {  # 请求体,自己修改
            "page": "1",
            "limit": "10"
        }
        r = self.client.get("消息列表的接口地址", data=data, headers=h)  # 地址自己修改
        print(r.text)
        assert "访问成功" in r.text


class WebsiteUser(HttpUser):
    tasks = [UserBehavior]
    min_wait = 1000
    max_wait = 1000


if __name__ == "__main__":
    import os

    os.system("locust -f locustfile.py --host=主地址")  # 主地址自己修改

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值