负载性能测试工具之—— Locust 安装和测试使用

Locust:简介和基本用法

我个人在性能测试工作中,负载生成工具使用的大多都是jmeter,之前学习python时顺带了解过python开源的性能测试框架locust。

这篇博客,简单介绍下locust的使用方法,仅供参考。。。

官方文档:Locust说明文档

一、认识Locust

1、定义

Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。

2、特点

①、不需要编写笨重的UI或者臃肿的XML代码,基于协程而不是回调,脚本编写简单易读;

②、有一个基于we简洁的HTML+JS的UI用户界面,可以实时显示相关的测试结果;

③、支持分布式测试,用户界面基于网络,因此具有跨平台且易于扩展的特点;

④、所有繁琐的I / O和协同程序都被委托给gevent,替代其他工具的局限性;

3、locust与jmeter的区别

工具 区别
jmeter 需要在UI界面上通过选择组件来“编写”脚本,模拟的负载是线程绑定的,意味着模拟的每个用户,都需要一个单独的线程。单台负载机可模拟的负载数有限
locust 通过编写简单易读的代码完成测试脚本,基于事件,同样配置下,单台负载机可模拟的负载数远超jmeter

PS:但locust的局限性在于,目前其本身对测试过程的监控和测试结果展示,不如jmeter全面和详细,需要进行二次开发才能满足需求越来越复杂的性能测试需要。

二、安装Locust

1、支持的python版本:2.7、3.4、3.5、3.6;

2、Windows系统安装locust

①、直接通过 pip install locustio 命令安装;

②、通过为pyzmq、gevent和greenlet安装预先构建的二进制包,然后在这里找到非官方的预制包,下载.whl文件后,使用 pip install name-of-file.whl 命令安装;

安装成功后可以输入 pip show locust 命令查看是否安装成功,以及通过 locust -help 命令查看帮助信息。

 安装:

 pip install locust

如果安装成功的话

接着我们写个脚本:

# -*- coding: utf-8 -*-
# @File    : test.py
# @API_name: test
# @Time    : 2021/7/2217:07
# @Author  : lch
 
from locust import HttpUser, TaskSet, task
import random
# 定义用户行为,继承TaskSet类,用于描述用户行为
# (这个类下面放各种请求,请求是基于requests的)
# client.get=requests.get
# client.post=requests.post
 
class test_viewers(TaskSet):
    # task装饰该方法为一个事务方法的参数用于指定该行为的执行权重。参数越大,每次被虚拟用户执行概率越高,不设置默认是1
 
    @task()
    def test_viewersuv(self):
       #用法和requests相同
        header = {}
        params = {"aid": random.randint(1, 1000)}
        r = self.client.get("lch.tpshop.com", headers=header, params=params)
        # 使用assert断言请求是否正确
        # assert r.status_code == 200
 
 
# 这个类类似设置性能测试,继承HttpLocust
class websitUser(HttpUser):
    # 指向一个上面定义的用户行为类
    task_set = test_viewers
    # 执行事物之间用户等待时间的下界,单位毫秒,相当于lr中的think time
    min_wait = 3000
    max_wait = 6000

接着我们用脚本来压测:

locust -f test.py --host=lch.tpshop.com

 在页面输入下面的地址:

 http://192.168.0.200:8089/

 上面有2个输入框,多少用户数,每秒多少个并发请求。

接下来就会看到:

这个可以针对接口压测,接口请求参数写文本里面,模拟登录都可以在python脚本里面去做!

更多的参考:Locust说明文档

猜你喜欢

转载自blog.csdn.net/lchmyhua88/article/details/118992875