一、Locust工具介绍

1.概述

Locust是一款易于使用的分布式负载测试工具,完全基于事件,使用python开发,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。

2.常见性能测试工具比较

3.环境搭建

源码安装:下载源码https://github.com/locustio/locust,进入文件夹执行安装命令:python setup.py install

pip安装:pip install locust

二、Locust常用类和方法

三、Locust常用参

四、案例

1.参数化

# -*- coding: utf-8 -*-
import os,random
from locust import TaskSet, task,HttpUser, between #任务类
class Testlocust(TaskSet):
def on_start(self):
self.login_headers={'x-client-id': 'xxxxxx'} #头文件
self.data=[
{
"account_name": "登录账号1",
"user_name": "登录账号1",
"hashed_password": "登录密码1"
},
{
"account_name": "登录账号2",
"user_name": "登录账号2",
"hashed_password": "登录密码2"
},
{
"account_name": "登录账号3",
"user_name": "登录账号3",
"hashed_password": "登录密码3"
}
] #登录账号密码
print("------on start------") @task()
def userlogin(self):
r = self.client.post(url='/v1/auth/users/login', headers=self.login_headers,
json=random.choice(self.data),name='登录',verify=False) #使用choice方法参数化随机登录
assert r.status_code == 200 and r.json()['status']==0 #登录断言 def on_stop(self):
print("------on stop------") #用户类
class WebsiteUser(HttpUser): #locust1.0版本以前是HttpLocust
tasks = [Testlocust] #locust1.0版本以前是task_set=Testlocust
host = 'https://xxxxxx' #被测主机地址
wait_time = between(min_wait=1,max_wait=5) #任务之间的等待时间 if __name__ == "__main__":
os.system("locust -f locust_XX.py") #执行locust脚本

2.关联

# -*- coding: utf-8 -*-
import os,requests
from locust import TaskSet, task,HttpUser, between #任务类
class Testlocust(TaskSet):
def on_start(self):
print("------on start------")
access_token = self.userlogin() #返回登录token
self.headers = {} #定义headers
self.headers['x-api-key'] = 'fZkQSHC1dp2s0tL21EMtaNX3UjF7P6L9' #添加headers值
self.headers['Authorization'] = 'Bearer ' + access_token
self.headers['x-key-hash'] = '1607675936446;abcdefg;bca1ef2b5835e454a15929f7ce9cb5d7ebaf580377624019002'
self.headers['Content-Type'] = 'application/json'
self.params = {"name": "CDR", "page": "1", "size": "10", "series": "CDR80"} #查询接口参数 def userlogin(self): #登录方法
login_url = 'https://xxxxxx/v1/auth/users/login' #登录url
data = {
"account_name": "账号1",
"user_name": "账号1",
"hashed_password": "密码1"
} #登录账号密码
login_headers = {'x-client-id': '46bf882df2959ea2'}
r = requests.request('POST', url=login_url, headers=login_headers, json=data) #登录
return r.json()['access_token'] #返回登录token @task()
def search(self): #查询设备信息
r = self.client.get(url='/v1/assets/device/search', headers=self.headers,
params=self.params, name='查询', verify=False) #查询
assert r.status_code == 200 and r.json()['code'] == 0 #结果断言 #用户类
class WebsiteUser(HttpUser): #locust1.0版本以前是HttpLocust
tasks = [Testlocust] #locust1.0版本以前是task_set=Testlocust
host = 'https://xxxxxx.com' #被测主机地址
wait_time = between(min_wait=1,max_wait=5) #任务之间的等待时间 if __name__ == "__main__":
os.system("locust -f locust_XX.py") #执行参数

Python3.7.9+Locust1.4.3版本性能测试工具案例分享的更多相关文章

  1. windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras

    转自:windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras 1.本来电脑安装的是anaconda3 5.3.1,但安装的python版本 ...

  2. [linux]centos7.4上升级python2版本到python3.6.5 【安装双版本,默认python3】

    版本声明 centos7.4 前言:linux上的python默认是版本2的,之前学django项目用的是3的版本 所以得升级下版本~ 1.下载python3.6.5 cd /usr/local/ w ...

  3. 性能测试工具Locust的使用

    一.写在前面 官网:https://www.locust.io/ 官方使用文档:https://docs.locust.io/en/latest/ 大并发量测试时,建议在linux系统下进行. 二.L ...

  4. 性能测试工具Locust的介绍和使用

    内容来自网络 https://www.w3xue.com/exp/article/20191/16707.html https://blog.csdn.net/qq_36255988/article/ ...

  5. Locust 性能测试工具安装使用说明

    1. 介绍     它是一个开源性能测试工具.使用 Python 代码来定义用户行为.用它可以模拟百万计的并发用户访问你的系统. 性能工具对比 LoadRunner 是非常有名的商业性能测试工具,功能 ...

  6. 性能测试工具 wrk 安装与使用

    介绍 今天给大家介绍一款开源的性能测试工具 wrk,简单易用,没有Load Runner那么复杂,他和 apache benchmark(ab)同属于性能测试工具,但是比 ab 功能更加强大,并且可以 ...

  7. 性能测试工具Locust

    An open source load testing tool. 一个开源性能测试工具. define user behaviour with python code, and swarm your ...

  8. 给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2

    一.什么是XHProf XHProf官网:http://pecl.php.net/package/xhprof XHProf是一个分层PHP性能分析工具.它报告函数级别的请求次数和各种指标,包括 阻塞 ...

  9. Ceph性能测试工具和方法。

    0. 测试环境 同 Ceph 的基本操作和常见故障排除方法 一文中的测试环境. 1. 测试准备 1.1 磁盘读写性能 1.1.1 单个 OSD 磁盘写性能,大概 165MB/s. root@ceph1 ...

随机推荐

  1. 2V转5V输出,2.4V转5V输出,DC-DC同步整流升压电路

    PW5100可以适用于2V转5V和2.4V转5V的应用电路中,PW5100是一颗DC-DC的同步升压转换器芯片. PW5100特点: 1, 低输入,宽范围:0.7V-5V 2, 输出电压固定,外围少: ...

  2. 响应式编程库RxJava初探

    引子 在读 Hystrix 源码时,发现一些奇特的写法.稍作搜索,知道使用了最新流行的响应式编程库RxJava.那么响应式编程究竟是怎样的呢? 本文对响应式编程及 RxJava 库作一个初步的探索. ...

  3. Android 代码规范大全

    前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...

  4. 订阅者模式,公众号、B站、快手用了都说好!

    大家好,今天和大家来聊一个新的设计模式--订阅者模式. 这个模式在我们的生活当中非常常见,可以说是几乎所有的媒体平台都用或多或少地用到了这个模式.比如公众号,我们来仔细梳理一下公众号这个平台当中的整个 ...

  5. Oracle数据库启动和关闭

    在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...

  6. 针对Fluent-Bit采集容器日志的补充

    hello,之前我写过<一套标准的ASP.NET Core容器化应用日志收集分析方案>,在公司团队.微信公众号.Github上反映良好. 其中配置Fluent-bit使用Forward协议 ...

  7. JavaScript中函数的this指向!

    JavaScript的this的指向问题! 这是我自己敲的, 报错! <button>点击查看绑定事件的this指向!</button> <script> // 函 ...

  8. 第一个 IDEA 应用程序

    新建 Java Web 项目 打开 IDEA -> Create New Project 选择 Java -> Java EE -> Web Application 选择工作空间 项 ...

  9. 通过 profiling 定位 golang 性能问题 - 内存篇 原创 张威虎 滴滴技术 2019-08-02

    通过 profiling 定位 golang 性能问题 - 内存篇 原创 张威虎 滴滴技术 2019-08-02

  10. class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):

    class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):