Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写。

安装

pip3 install locust

Python编写性能测试脚本

import json

from locust import HttpLocust, TaskSet, task

"""

创建后台管理站点压测类,需要继承TaskSet

可以添加多个测试任务

"""

class AdminLoadTest(TaskSet):

# 用户执行task前调用

def on_start(self):

pass

# 用户执行task后调用

def on_stop(self):

pass

@task(1)

def download(self):

header = {"Content-Type": "application/json"}

data = {

"staff_id": 94

}

data = json.dumps(data)

self.client.post('/get_know_list', data=data, headers=header)

@task(2)

def body(self):

header = {"Content-Type": "application/json"}

data = {

"staff_id": 94

}

data = json.dumps(data)

self.client.post('/get_answer_list', data=data, headers=header)

class RunLoadTests(HttpLocust):

"""

创建运行压测类

"""

task_set = AdminLoadTest

min_wait = 1000

max_wait = 50000

weight = 1

if __name__ == "__main__":

import os

os.system("locust -f test_download.py --host=http://127.0.0.1:5000")

AdminLoadTest类继承TaskSet类,用以描述用户行为:

使用@task装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被用户执行的概率越高,默认为1(事务blogs()被执行的概率是bky_index()的2倍);

on_start():每个locust用户执行测试事务之前执行一次,用于做初始化的工作,如登录;

on_stop(): 每次执行完测试事务之后执行一次。

RunLoadTests类用于设置性能测试属性:

task_set:指向定义的一个用户行为类;

min_wait:模拟用户在执行每个任务之间等待的最小时间,单位为毫秒;

max_wait:模拟用户在执行每个任务之间等待的最大时间,单位为毫秒(min_wait和max_wait默认值为1000,因此,如果没有声明min_wait和max_wait,则locust将在每个任务之间始终等待1秒。);

weight:一个文件中有多个locust用户类时,指定用户类的权重(默认新增locust用户时会随机选择一个用户类);

启动

终端进入代码目录,输入 locust -f start.py --host=http://localhost:5000

使用os.system在代码里面写入启动命令

各个参数的含义

-f : 指定要运行的测试脚本文件

--host : 要加载主机的URL前缀,不指定时,读取WebsiteUser类中定义的host;

--master : 单台机器不能模拟更多用户时,分布式模式,通过--master指定主进程;

打开Locust的web界面

使用上面的命令行启动Locust之后,应该打开浏览器并将其指向http://localhost:8089/(如果您在本地运行Locust)。

Number of total users to simulate : 设置模拟用户数;

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

设置好模拟用户后,点击Start swarming开始测试,测试结果如下:

Type   :请求的类型,如GET/POST;

Name :请求的路径;

request :已发出请求数量;

fails :请求失败的数量;

Median :响应时间的中间值(单位:毫秒);

Average :平均响应时间(单位:毫秒);

Min :请求的最小响应时间(单位:毫秒);

Max :请求的最大响应时间(单位:毫秒);

Content Size:单个请求的大小(单位:字节);

reqs/sec:每秒钟请求的个数;

其他

pythonlocust使用方法_使用python的locust库进行性能测试相关推荐

  1. python分析数据差异的方法_用Python的两种方法进行方差分析

    在进行数据分析时,我们往往会遇到要对某个变量的影响因素进行分析的情况,而影响一事物的因素往往是很多的.比如在化工生产中,有温度.压力.剂量.反应时间等因素.每一因素的改变都有可能影响产品的数量和质量. ...

  2. python 函数式编程 库_使用Python的toolz库开始函数式编程的方法

    在这个由两部分组成的系列文章的第二部分中,我们将继续探索如何将函数式编程方法中的好想法引入到 Python中,以实现两全其美. 在上一篇文章中,我们介绍了不可变数据结构 . 这些数据结构使得我们可以编 ...

  3. python连接opencv库_利用Python和OpenCV库将URL转换为OpenCV格式的方法

    今天的博客是直接来源于我自己的个人工具函数库. 过去几个月,有些PyImageSearch读者电邮问我:"如何获取URL指向的图片并将其转换成OpenCV格式(不用将其写入磁盘再读回)&qu ...

  4. python安装方法_【Python教程】Windows10 安装Python

    在此教程中,我们将学习一步一步在windows10 系统安装Python环境. 首先访问官网: https://www.python.org/downloads/ 点击下载,下载安装包.双击后有两个选 ...

  5. python计算文件大小的方法_使用Python计算目录的大小?

    拉丁的传说 这将遍历所有子目录; 汇总文件大小:import osdef get_size(start_path = '.'):    total_size = 0    for dirpath, d ...

  6. python split()方法_聊聊 Python 的单元测试框架(一):unittest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest. ...

  7. 用python和sympy库解决方程组问题_使用Python的SymPy库解决数学运算问题的方法

    摘要:在学习与科研中,经常会遇到一些数学运算问题,使用计算机完成运算具有速度快和准确性高的优势.Python的Numpy包具有强大的科学运算功能,且具有其他许多主流科学计算语言不具备的免费.开源.轻量 ...

  8. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  9. python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片

    我们知道,在使用PhotoShop进行图片的抠取.创建和存储选区.存储图像的色彩资料等复杂操作时,经常会用到一个功能,那就是"RGB"通道,它能从三原色角度对一幅图片进行精准处理. ...

最新文章

  1. 愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
  2. 数字证书及CA的扫盲介绍
  3. c语言怎么算n以内素数,关于求N以内素数的一点小问题(N小于一亿)
  4. 【QT源码】系列01
  5. 防止刷新重复post提交
  6. 开机显示erro:file'/boot/grub/i386-pc/normal.mod' not解决
  7. 数独的优化回朔算法(二)
  8. django数据库增删改查操作
  9. 《MySQL技术内幕 InnoDB存储引擎》.pdf
  10. 汽车控制器软件开发模式调研
  11. linux安装惠普RGS软件,惠普RGS初印象
  12. 广州行键CRM客户关系管理系统
  13. 【记录一些名人博客地址】
  14. php彩蛋入侵,这隐藏彩蛋,可太牛批了!
  15. 计算机专业 大学物理课程简介,大学物理A课程简介.doc
  16. C++实现 数字游戏之拼出最大数
  17. VMware安装VMwareTolls
  18. json学习笔记(圣思园视频学习笔记)
  19. AS7341光谱传感器测量色温color_temperature_学习笔记
  20. matlab中的颜色,Matlab里面除了常用的还有哪些颜色?已知的颜色不够怎么办?

热门文章

  1. 前端if else_应该记录的一些项目代码(前端)
  2. linux 脚本 expected,Linux | shell与expect结合使用
  3. java全局异常处理_详解Spring全局异常处理的三种方式
  4. java中的线程和进程,Java | 线程和进程,创建线程
  5. JQuery DataTables Editor---只修改页面内容
  6. 【电路补习笔记】10、电感式开关电源(BUCK 降压电路)
  7. Linux-Ubuntu 启用root账户
  8. SecureCRT日志配置
  9. VC2010如何给ActiveX添加事件
  10. 计算文件的md5;vue计算文件md5值;计算图片的md5值;