locust+python高并发压测总结

locust+python全链路压测总结

1. 什么是接口?

为系统提供数据服务的叫做接口(Interface)

locust安装

pip install locust

安装完成后:locust -h查看是否安装成功

2. 如何编写locust脚本?

编写locust脚本主要分为以下几个步骤:

  1. 导入Locust类
  2. 定义用户行为
  3. 定义任务
  4. 运行脚本

2.1 导入Locust类

python 复制代码
from locust import HttpUser, task, between

2.2 定义用户行为

python 复制代码
class MyUser(HttpUser):
    wait_time = between(1, 2)

    @task
    def my_task(self):
        self.client.get("/api/users")

2.3 定义任务

python 复制代码
class MyUser(HttpUser):
    wait_time = between(1, 2)

    @task
    def my_task(self):
        self.client.get("/api/users")

2.4 运行脚本

python 复制代码
from locust import HttpUser, task, between

class MyUser(HttpUser):
    wait_time = between(1, 2)

    @task
    def my_task(self):
        self.client.get("/api/users")

# 运行脚本:locust -f my_locust_script.py --host=http://example.com

3. 如何运行locust脚本?

运行locust脚本有两种方式:

  1. 命令行运行:locust -f my_locust_script.py --host=http://example.com
  2. 代码运行:
python 复制代码
from locust import runners

def main():                 
        # 运行脚本              
        runners.locust_runner.run_locust_file("my_locust_script.py", host="http://example.com")

if __name__ == "__main__":
        main()

4. 如何分析locust脚本的性能?

locust提供了一些性能分析工具,包括:

  1. 统计信息:locust -f my_locust_script.py --host=http://example.com --stats-csv=stats.csv
  2. 分析统计信息:locust -f my_locust_script.py --host=http://example.com --csv=stats.csv --no-web --only-summary
  3. 分析统计信息:locust -f my_locust_script.py --host=http://example.com --csv=stats.csv --no-web --only-summary --show-task-ratio
  4. 分析统计信息:locust -f my_locust_script.py --host=http://example.com --csv=stats.csv --no-web --only-summary --show-task-ratio --show-percentile-stats

5. 如何优化locust脚本?

  1. 优化用户行为:
    1. 减少并发用户数:通过设置并发用户数,可以控制脚本的并发用户数,减少脚本的压力。
    2. 优化请求:优化请求,可以提升脚本的吞吐量。
    3. 优化请求参数:优化请求参数,可以提升脚本的响应速度。
    4. 优化请求方式:优化请求方式,可以提升脚本的响应速度。
    5. 优化请求头:优化请求头,可以提升脚本的响应速度。
    6. 优化断言:优化断言,可以提升脚本的响应速度。
    7. 优化代码:优化代码,可以提升脚本的响应速度。
  2. 优化脚本:
    1. 优化代码结构:优化代码结构,可以提升脚本的响应速度。
    2. 优化代码逻辑:优化代码逻辑,可以提升脚本的响应速度。
    3. 优化代码性能:优化代码性能,可以提升脚本的响应速度。
    4. 优化代码配置:优化代码配置,可以提升脚本的响应速度。
    5. 优化代码环境:优化代码环境,可以提升脚本的响应速度。
    6. 优化代码部署:优化代码部署,可以提升脚本的响应速度。
  3. 优化服务器:
    1. 优化服务器硬件:优化服务器硬件,可以提升脚本的响应速度。
    2. 优化服务器软件:优化服务器软件,可以提升脚本的响应速度。
    3. 优化服务器网络:优化服务器网络,可以提升脚本的响应速度。
    4. 优化服务器负载:优化服务器负载,可以提升脚本的响应速度。
    5. 优化服务器配置:优化服务器配置,可以提升脚本的响应速度。

下面是部分优化代码:

复制代码
@task(weight_t1)
    def test_register_login(self):
        # 注册用户(web)
        uri = "/usercenter/v1/web/register/account"
        username = "web" + random_data_time_string(rule="time_ms", return_str=True)
        req_body = {
            "user_name": username,
            "coin_code": coin_code,
            "password": default_pwd,
            "application_id": application_id,
            "use_type": 1,
            "app": "web",
            "invite_code": invite_code
        }
        with self.client.post(path=uri, headers=default_headers, json=req_body, catch_response=True) as responses:
            if responses.status_code == 200 and responses.json().get("code") == 0:
                responses.success()
            else:
                responses.failure("注册失败")
相关推荐
QX_hao5 分钟前
【Go】--log模块的使用
开发语言·后端·golang
爱编程的鱼16 分钟前
ESLint 是什么?
开发语言·网络·人工智能·网络协议
小陈不好吃17 分钟前
Spring Boot配置文件加载顺序详解(含Nacos配置中心机制)
java·开发语言·后端·spring
合作小小程序员小小店18 分钟前
web网页开发,在线%聚类,微博,舆情%系统,基于python,pycharm,django,nlp,kmeans,mysql
python·pycharm·kmeans·聚类·sklearn·kmean
Dan.Qiao18 分钟前
python读文件readline和readlines区别和惰性读
开发语言·python·惰性读文件
渡我白衣30 分钟前
链接的迷雾:odr、弱符号与静态库的三国杀
android·java·开发语言·c++·人工智能·深度学习·神经网络
A.A呐31 分钟前
【QT第三章】常用控件1
开发语言·c++·笔记·qt
Bony-33 分钟前
Go语言并发编程完全指南-进阶版
开发语言·后端·golang
闲人编程42 分钟前
将你的旧手机变成监控摄像头(Python + OpenCV)
python·opencv·智能手机·监控·codecapsule·oasis
007php00744 分钟前
大厂深度面试相关文章:深入探讨底层原理与高性能优化
java·开发语言·git·python·面试·职场和发展·性能优化