Locust

Locust高并发接口测试框架

2020-07-20  本文已影响0人  Aaron_fcff

一、环境配置

python 3.7
Locust 1.1.1
MacOS

二、为什么需要使用locust

公司面对大量用户时,有时候需要对某些单接口/组合接口压测;但是单台机器的性能又无法满足大并发量,怎么办?一开始考虑用非界面版本的jmeter去执行任务,但是macOS对jmeter5.3不兼容(好卡,不知道是不是个人电脑问题),最后决定使用Python的高并发框架Locust。
下面说说当前接口并发工具中,各自的优缺点:


image.png

**图片来自网络

三、基本使用

from locust import HttpUser, task

class Quickstart(HttpUser):
    min_wait = 100  # 最小等待时间(ms),模拟用户在执行每个任务之间等待的最小时间
    max_wait = 500  # 最大等待时长(ms),模拟用户在执行每个任务之间等待的最大时长
    host = 'https://baidu.com'  # 访问的域名

    def on_start(self):
        #开始任务
        print("start working")

    # 任务target,用@task标记    
    @task
    def mytask(self):
        self.client.get('/')

参数解释:
1.使用@task装饰的方法为一个事务,方法的参数@task(2)用于指定该行为的执行权重,参数越大每次被用户执行的概率越高,默认为1(即task(2)是@task(1)执行次数的2倍)
2.on_start():每个用户执行测试事务之前执行一次,用于做初始化的工作

四、启动Locust

命令窗口执行:locust -f 待测脚本
浏览器打开:locust:8089 # 8089是默认端口

image.png

五、分布式压测初尝

执行方法比较简单,但务必注意⚠️Locust的版本主、从机是否一致

上一篇下一篇

猜你喜欢

热点阅读