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

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:每秒钟请求的个数;

其他

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows SDK笔记(三):定制控件消息处理函数

From: http://www.vckbase.com/document/viewdoc/?id1009 一、概述 控件的消息处理函数是由系统定义好了的,通常情况下,不需要自己提供。 但当需要对控件进行特殊控制时,可以提供一个消息处理函数,替换原来的消息处理函数。 自…

python tip

Python代码 def run(name,age,sex): print name :,name,age:,age,sex:,sex >>> run(xiaoming,namexiaoming,sexboy) SyntaxError: non-keyword arg after keyword arg def run(name,age,sex): print name :,name,age:,age,sex:,sex >>> run…

js实现使用drag实现元素拖拽排序

js实现使用drag实现元素拖拽排序

.NET Core 和 .NET Framework 之间的关系

引用一段描述:Understanding the relationship between .NET Core and the .NET Framework。 .NET Core and the .NET Framework have (for the most part) a subset-superset relationship. .NET Core is named "Core" since it contains the core featu…

博客园开始对X++语言语法高亮的支持

关注X的博客园博友有福啦,现在发布X代码也同样可以实现语法高亮。目前仅支持SyntaxHighlighter插件。请看如下: public void update(boolean _updateParty true, boolean _updateContactPersonLastEdit true) {Address addressOrig this.orig();ttsbe…

win10网卡高级属性配置图解_简单设置,win10再也不会断网了

你多朋友反应win10会频繁断网,无任何规律。这也是导致很多人反感win10的原因之一。我百度了一下这个问题,解决问题的方法基本上都是关闭省电模式,重装网卡驱动之类的答案。但都解决不了根本问题。虽然不清楚深层次的断网原因,但通…

css 绘制带尖角的矩形

css 绘制带尖角的矩形

Ext GrdPanel多种取值方式

一、单选行取值 1、在Store中设置ReaderID <ext:Store runat"server" ID"SQry" AutoLoad"true" RemoteSort"true"> <Reader> <ext:JsonReader ReaderID"shid"> <Fields> <ext:RecordFiel…

为子控件添加自定义绘图方式

在MFC应用程序中&#xff0c;有时会遇到需要让指定的控件实现自绘。但是看该控件的事件&#xff0c;没有一个像是能承担这种责任的。 我们都知道控件也是窗口&#xff0c;也都有消息循环。所以&#xff1a; 方案一&#xff1a;写个新类&#xff0c;继承自某个窗口类&#xff…

ios7 导航栏 手势 右划 自动返回 相关

http://www.tuicool.com/articles/vMfAVv 纪录一下&#xff0c;转载于:https://www.cnblogs.com/penn-wang/p/4308140.html

根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...

继承继承(Inheritance)可以实现类之间共享属性和方法&#xff0c;是面向对象编程的另一个特性使用继承可以最大限度地实现代码复用。定义&#xff1a;继承就是在已有类的基础上构建新的类&#xff0c;一个类继承已有类后&#xff0c;可以对被继承类中的属性和方法进行重用。继承…

Echarts y轴高度设置(宽度铺满整个父级高度)

Echarts y轴高度设置&#xff08;宽度铺满整个父级高度&#xff09;

利用 Cloudera 实现 Hadoop (二)

安装 规划好了就开始安装Hadoop&#xff0c;如前言中所说使用Cloudera的Hadoop发布版安装Hadoop是十分方便的&#xff0c;首先当然是在每台主机上一个干净的操作系统&#xff08;我用的是Ubuntu 8.04&#xff0c;用户设为Hadoop&#xff0c;其它的版本应该差不多&#xff09;&…

CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别-Windows绘图基础知识

From: http://blog.csdn.net/zhangxinrun/article/details/5829084 一、设备环境&#xff08;DC&#xff09;的概念&#xff08;1&#xff09;在Windows中&#xff0c;显示工作是基于设备环境的。所谓设备环境&#xff08;DC&#xff09;是一种Windows数据结构&#xff0c;该结…

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写...

实验十八&#xff1a;SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘&#xff0c;它作为冤魂日夜不断纠缠笔者。笔者尝试过许多方法将其退散&#xff0c;不过屡试屡败的笔者&#xff0c;最终心情像橘子一样橙。《整合篇》之际&#xff0c;笔者曾经大战几回儿&#xff0c;不…

gateway请求拦截_一种网关对用户请求进行统一拦截判断是否放行的方法与流程...

本发明涉及互联网技术领域&#xff0c;特别涉及一种网关对用户请求进行统一拦截判断是否放行的方法。背景技术&#xff1a;随着互联网发展的越来越快&#xff0c;技术也更新的非常频繁&#xff0c;比如开发一个系统的架构由最初始的单个服务器就能处理演变到现在的利用springcl…