使用Locust进行服务器压力测试
- 技术
- 2024-03-23
- 317热度
- 0评论
试试用Locust对自己的小垃圾服务器进行一些性能测试QAQ
环境配置
安装Locust
pip install locust
准备测试脚本
from locust import HttpUser, task, between
class WebsiteUser(HttpUser):
host = "https://your-server-address.com" # 替换为你的服务器地址
wait_time = between(1, 5)
@task
def load_homepage(self):
self.client.get("/", verify=False)
执行测试
locust -f testfile.py
Locust会创建一个Web server在本机8089端口,但是因为忘记了是在wsl上执行的了就忘了QAQ
在wsl上
ip addr
查看本机ip后再用ip:8089进行启动
即可输入参数进行测试
为了测试最大rps,可以加上--step-load参数(已经在1.3版本删除啦)
需要使用继承LoadTestShape类自定义负载曲线,在py文件中包含此类locust会自动识别并使用
如:
class MyCustomShape(LoadTestShape):
use_common_options = True
# time_limit设置时限整个压测过程为60秒
time_limit = 60
# 设置产生率一次启动10个用户
spawn_rate = 10
# 设置tick()函数
def tick(self):
'''
设置 tick()函数
并在tick()里面调用 get_run_time()方法
'''
# 调用get_run_time()方法获取压测执行的时间
run_time = self.get_run_time()
# 运行时间在 time_limit之内,则继续执行
if run_time < self.time_limit:
# user_count计算每10秒钟增加10个
user_count = round(run_time, -1)
print(str(user_count)+">>>>>"+datetime.datetime.now().strftime('%Y-%m-%d-%H:%M:%S.%f'))
return (user_count, self.spawn_rate)
会生成一个梯度上升的曲线
现在就可以愉快的使用UI对机器进行查看啦
对于2G,两核的小破烂已经很满意了QAQ,有钱了一定拉满QAQ