• 最简单的性能测试locust类


    Locust类
    每生成一个实例都代表一个虚拟的用户,用来发送请求到进行负载测试的系统。

    该用户的行为由task_set属性定义,该属性应指向一个 TaskSet类。

    1、这个类通常应该由某些类继承并且重新定义。例如,当测试HTTP系统时,使用的HttpLocust类。

    2、安装locust库:pip install locust

    3、使用以下代码,建立.py文件,名称为:locust_demo.py

    from locust import HttpLocust, TaskSet, task   #调用库里的包

    class UserBehavior(TaskSet): # 建立链接启动服务 , 指向TaskSet类,定义了locust的执行行为
    @task
    def baidu_page(self):
    self.client.get("/")

    class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 3000 # 执行locust任务之间的最短等待时间,单位是毫秒
    max_wait = 6000 # 执行locust任务之间的最长等待时间,单位是毫秒

    4、cmd命令:locust -f locust.py --host=http://www.baidu.com

    ps:启动成功,端口号是8089

    附locust命令详解

    -h, --help 查看帮助
    -H HOST, --host=HOST 指定被测试的主机,采用以格式:http://10.21.32.33
    --web-host=WEB_HOST 指定运行 Locust Web 页面的主机,默认为空 ''。
    -P PORT, --port=PORT, --web-port=PORT 指定 --web-host 的端口,默认是8089
    -f LOCUSTFILE, --locustfile=LOCUSTFILE 指定运行 Locust 性能测试文件,默认为: locustfile.py
    --csv=CSVFILEBASE, --csv-base-name=CSVFILEBASE 以CSV格式存储当前请求测试数据。
    --master Locust 分布式模式使用,当前节点为 master 节点。
    --slave Locust 分布式模式使用,当前节点为 slave 节点。
    --master-host=MASTER_HOST 分布式模式运行,设置 master 节点的主机或 IP 地址,只在与 --slave 节点一起运行时使用,默认为:127.0.0.1.
    --master-port=MASTER_PORT 分布式模式运行, 设置 master 节点的端口号,只在与 --slave 节点一起运行时使用,默认为:5557。注意,slave 节点也将连接到这个端口+1 上的 master 节点。
    --master-bind-host=MASTER_BIND_HOST Interfaces (hostname, ip) that locust master should bind to. Only used when running with --master. Defaults to * (all available interfaces).
    --master-bind-port=MASTER_BIND_PORT Port that locust master should bind to. Only used when running with --master. Defaults to 5557. Note that Locust will also use this port + 1, so by default the master node will bind to 5557 and 5558.
    --expect-slaves=EXPECT_SLAVES How many slaves master should expect to connect before starting the test (only when --no-web used).
    --no-web no-web 模式运行测试,需要 -c 和 -r 配合使用.
    -c NUM_CLIENTS, --clients=NUM_CLIENTS 指定并发用户数,作用于 --no-web 模式。
    -r HATCH_RATE, --hatch-rate=HATCH_RATE 指定每秒启动的用户数,作用于 --no-web 模式。
    -t RUN_TIME, --run-time=RUN_TIME 设置运行时间, 例如: (300s, 20m, 3h, 1h30m). 作用于 --no-web 模式。
    -L LOGLEVEL, --loglevel=LOGLEVEL 选择 log 级别(DEBUG/INFO/WARNING/ERROR/CRITICAL). 默认是 INFO.
    --logfile=LOGFILE 日志文件路径。如果没有设置,日志将去 stdout/stderr
    --print-stats 在控制台中打印数据
    --only-summary 只打印摘要统计
    --no-reset-stats Do not reset statistics once hatching has been completed。
    -l, --list 显示测试类, 配置 -f 参数使用
    --show-task-ratio 打印 locust 测试类的任务执行比例,配合 -f 参数使用.
    --show-task-ratio-json 以 json 格式打印 locust 测试类的任务执行比例,配合 -f 参数使用.
    -V, --version 查看当前 Locust 工具的版本. 

    5、在浏览器地址输入: http://localhost:8089/,进入locust页面,如图

    
    

    ps: Number of users to simulate  设置虚拟用户数,

    Hatch rate(users spawned/second)每秒产生(启动)的虚拟用户数

    点击Start swarming 按钮,开始运行性能测试

     6、设置用户数10,每秒产生启动的虚拟用户数为2,点击start swarming(statistics统计页面)

    上图:启动了一个 master 和两个 slave,由两个 slave 来向被测试系统发送请求

    RPS平均响应时间这两个指标显示的值都是根据最近2秒请求响应数据计算得到的统计值,我们也可以理解为瞬时值。
    性能测试参数

    • Type: 请求的类型,例如GET/POST。
    • Name:请求的路径。这里为百度首页,即:https://www.baidu.com/
    • request:当前请求的数量。
    • fails:当前请求失败的数量。
    • Median:中间值,单位毫秒,一半的服务器响应时间低于该值,而另一半高于该值。
    • Average:平均值,单位毫秒,所有请求的平均响应时间。
    • Min:请求的最小服务器响应时间,单位毫秒。
    • Max:请求的最大服务器响应时间,单位毫秒。
    • Content Size:单个请求的大小,单位字节。
    • reqs/sec:是每秒钟请求的个数。

    相比于LoadRunner,Locust的结果展示十分简单,主要就四个指标:并发数、RPS、响应时间、异常率。但对于大多数场景来说,这几个指标已经足够了。

     7、Charts栏,展示性能指数

     ps:download data下载 Download request statistics CSV

     Download response time stats history CSV

    部分资料转载至https://www.cnblogs.com/ailiailan/p/9474973.html,有需要的朋友可以点击详细查看
     
  • 相关阅读:
    MVC知识总结(前序)
    MySql 安装
    django【ORM】model字段类型
    gmail注册时“此电话号码无法用于进行验证”
    Python3 re模块正则表达式中的re.S
    django【ORM】 通过外键字段找对应类
    Django【进阶】modelform
    python3-字符编码
    python3-可变和不可变数据类型
    Django【设计】同功能不同实现模式的兼容性
  • 原文地址:https://www.cnblogs.com/Lyonjiayou/p/12529647.html
Copyright © 2020-2023  润新知