Locust 部署压测

Python环境安装

要求 python 3.7+ 此处安装3.9版本测试

1、安装 Python 3.9

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装必要的开发工具和库
yum groupinstall -y "Development Tools"
yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel

# 下载源码
curl -O https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar -xf Python-3.9.0.tgz
cd Python-3.9.0

# 配置并编译源代码
./configure --enable-optimizations
make -j$(nproc)
make altinstall # 使用 make altinstall 而不是 make install 来避免替换系统自带的 Python 版本

# 验证
python3.9 --version

2、安装 pip3

1
2
3
4
5
6
# 安装 pip3
curl -O https://bootstrap.pypa.io/get-pip.py
python3.9 get-pip.py

# 验证
pip3.9 --version

3、软连接替换

1
2
3
4
5
6
7
8
9
# 替换 pip3
which pip3.9
ln -s /usr/local/bin/pip3.9 /usr/local/bin/pip3
pip3 --version

# 替换 python
which python3.9
ln -s /usr/local/bin/python3.9 /usr/local/bin/python3
python3 --version

安装 Locust

1、安装 Locust

1
pip3 install locust

报错:

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168

解决方案(两种都可以):

1、yum update openssl

2、pip3 install ‘urllib3<2.0’ # 降级 urllib3 的版本

2、创建一个 Locustfile

1
2
3
4
5
6
7
8
9
10
11
# 创建一个名为 locustfile.py 的文件,并在其中定义你的用户行为和任务。下面是一个简单的示例,该示例对一个网站进行 GET 请求:

from locust import HttpUser, task, between

class WebsiteUser(HttpUser):
wait_time = between(1, 2.5)

@task(1)
def load_main(self):
self.client.get("/")
# 定义了一个 WebsiteUser 类,它从 HttpUser 继承而来,并定义了一个 task 来模拟用户访问网站的主页。

3、运行 Locust

1
locust -f locustfile.py

4、访问 Locust web 界面

1
打开你的 web 浏览器,访问 http://127.0.0.1:8089 来访问 Locust 的 web 界面。

5、开始测试

1
2
3
在 Locust web 界面中,可以输入想要模拟的用户数量和用户启动速率,然后点击“开始测试”来开始测试。

这里看到一个实时更新的仪表板,显示了各种有用的性能指标,包括请求的数量、失败的数量、最小/最大/平均响应时间等。

如果需要更复杂的可以看这里:https://docs.locust.io/en/stable/