python Locust性能测试工具详细讲解

一.脚本实现

locust通过client属性来使用Python requests库的所有方法,调用方式与reqeusts一样

#安装三方库
pip install locustio
from locust import HttpLocust, TaskSet, task
import os

# 性能测试任务类 TaskSet.
class UserBehavior(TaskSet):

    def on_start(self):
        print("start")

    # 使用@task装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被用户执行的概率越高
    @task(1)
    def hello_word(self):
        result = self.client.get("/").text
        print(result)

    @task(2)
    def get_info(self):
        data = {
            'a':10,
            'b':20
        }
        result = self.client.get(url="/get_info",params=data).text
        print(result)

    @task(3)
    def post_info(self):
        data = {
            'a': 10,
            'b': 20
        }
        result = self.client.post(url="/post_info", json=data).text
        print(result)

# 性能测试配置
class MobileUserLocust(HttpLocust):
    u"""
    min_wait :用户执行任务之间等待时间的下界,单位:毫秒。
    max_wait :用户执行任务之间等待时间的上界,单位:毫秒。
    """
    # weight = 3
    task_set = UserBehavior
    host = "http://192.168.10.117:8000"
    #模拟用户在执行每个任务之间等待的最小时间,单位为毫秒;
    min_wait = 2000
    #模拟用户在执行每个任务之间等待的最大时间,单位为毫秒(min_wait和max_wait默认值为1000,因此,如果没有声明min_wait和max_wait,则locust将在每个任务之间始终等待1秒。)
    max_wait = 4000

if __name__ == "__main__":
    '''-f 指定py文件,--no-web 通过命令运行,-c 总用户数, -r 每秒钟启动多少个用户 ,--csv 直接保存存放路径,--logfile 指定日志存在路径'''
    os.popen("locust -f  D:\\workspace\\性能\\test.py  --no-web -c 10 -r 10 -t 1  --csv=测试结果  --logfile=LOGFILE")
    # os.popen('locust -f  D:\\workspace\\性能\\test.py')

二.运行Locust

1.可视化见面运行

locust -f  D:\\workspace\\性能\\test.py

通过 http://localhost:8089/可以直接访问web页面
python Locust性能测试工具详细讲解_第1张图片
Number of total users to simulate:这里填写总并发数
Hatch rate:每秒钟启动多少个用户
host:代码里写了,会自动填充的

结果如下:
python Locust性能测试工具详细讲解_第2张图片
图中三个接口的请求数多少是由@task()来决定的,使用@task装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被用户执行的概率越高。
python Locust性能测试工具详细讲解_第3张图片
2.通过命令执行

os.popen("locust -f  D:\\workspace\\性能\\test.py  --no-web -c 10 -r 10 -t 1  --csv=测试结果  --logfile=LOGFILE")

-f:指定运行的py文件

– no-web:通过命令运行

-c:总用户数

-r :每秒钟启动多少个用户

–csv:报告存放路径

–logfile:指定日志存在路径

三.结果分析

python Locust性能测试工具详细讲解_第4张图片
从上到下:

1.吞吐量/每秒响应事务数(rps) 实时统计

2.平均响应时间/平均事务数 实时统计

3.虚拟用户数运行

具体分析可参考:https://blog.csdn.net/beiniao520/article/details/80240974

你可能感兴趣的:(性能工具)