使用Locust进行服务器压力测试

试试用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