【locust】locust安装与启动
locust安装
通过pip 安装locust
pip install locustio
需要预先安装python3和pip,这次在安装环境时遇到一些坑,环境中原本使用的python2.6,需要重新安装python3环境,这时候可以安装一个虚拟环境
注:支持的python版本:2.7、3.4、3.5、3.6及以上
虚拟环境安装
- 命令安装了python的虚拟环境
pip3 install virtualenv
- 创建虚拟机环境
virtualenv /venv
- 激活虚拟环境
source /venv/bin/activate
进入了一个全新的python3的环境,你可以安装独立的python依赖了,安装完成之后可以启动程序运行
- 退出虚拟环境
deactivate
脚本示例
locust的脚本里,模拟负载的请求和python的requests库使用方法基本一样,示例如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: lluozh
# @Date : 2020/4/16
# @Desc :
from locust import HttpLocust,TaskSet,task,betweenclass MyBlogs(TaskSet):@task(1)def get_blog(self):header = {}body = {"roomId": "158589982254376"}req = self.client.get("/api/v1/model", headers=header, params=body, verify=False)# print(req.text)# if req.status_code == 200:# print("success")# else:# print("fails")class websitUser(HttpLocust):task_set = MyBlogs# 设置用户执行任务之间等待的上下限,单位秒wait_time = between(3, 6)# # 等同于上面wait_time,单位毫秒# min_wait = 3000# max_wait = 6000host = "http://benchmark-server.lluozh.com"if __name__ == "__main__":import os# os.system("locust -f locusttest.py --master")os.system("locust -f locusttest.py --slave --master-host=10.200.0.219")
脚本说明:
- 新建一个类MyBlogs(TaskSet),继承TaskSet,该类下面写需要请求的接口以及相关信息
- self.client调用get和post方法,和requests一样
- @task装饰该方法表示为用户行为,括号里面参数表示该行为的执行权重:数值越大,执行频率越高,不设置默认是1
WebsiteUser()类用于设置生成负载的基本属性:
- task_set:指向一个TaskSet类,TaskSet类定义了用户的任务信息,该属性为必填
- min_wait:模拟负载的任务之间执行时的最小等待时间,单位为毫秒
- max_wait:模拟负载的任务之间执行时的最大等待时间,单位为毫秒
- host:被测系统的host,当在终端中启动locust时没有指定–host参数时才会用到
- weight:同时运行多个Locust类时会用到,用于控制不同类型任务的执行权重。、
默认情况下,时间是在min_wait和max_wait之间随机选择,但是可以通过将wait_function设置为任意函数来使用任何用户定义的时间分布
启动Locust
1. 单机启动
locust -f testscript/locusttest.py --host=http://benchmark-server.lluozh.com
2. 分布式启动
master:
locust -f testscript/locusttest.py --master --host=http://benchmark-server.lluozh.com
slave:
locust -f testscript/locusttest.py --slave --master-host=10.200.0.2190 --host=http://benchmark-server.lluozh.com
注:若在阿里云环境时,需要使用内部ip
成功启动提示
[2020-04-18 20:01:22,727] IMYalost/INFO/locust.main: Starting web monitor at *:8089
[2020-04-18 20:01:22,729] IMYalost/INFO/locust.main: Starting Locust 0.8
8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可
运行逻辑
测试开始后,每个虚拟用户(Locust实例)的运行逻辑都会遵循如下规律:
- 先执行WebsiteTasks中的on_start(只执行一次),作为初始化
- 从WebsiteTasks中随机挑选(如果定义了任务间的权重关系,那么就是按照权重关系随机挑选)一个任务执行
- 根据Locust类中min_wait和max_wait定义的间隔时间范围(如果TaskSet类中也定义了min_wait或者max_wait,以TaskSet中的优先),在时间范围中随机取一个值,休眠等待
重复2~3步骤,直至测试任务终止。
【locust】locust安装与启动相关推荐
- Locust的安装和有无Web界面的使用,附脚本示例供参考
Locust是一个开源的性能测试工具,可以结合python代码(需要有一定的python代码基础)进行用户并发测试,能够测试出一个系统可以并发处理多少个用户,扩展性强 1.安装 需要在python下安 ...
- 客快物流大数据项目(八):Docker的安装和启动
目录 Docker的安装和启动 一.服务器规划 二.安装Docker 1.验证Linux内核版本 <
- vmware workstation 安装esx 启动vt功能
vmware workstation 安装esx 启动vt功能,支持64bit虚拟机,如下所示: 转载于:https://blog.51cto.com/auqf12/1293587
- windows10下postgreSQL 下载、安装、启动、关闭
windows10下postgreSQL 下载.安装.启动.关闭 下载 安装 l设置密码和端口,一直next直到安装完成 环境变量
- [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解
本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议详解 , Kickstart (PXE+DHCP+TFTP+HTTP). PXE环境概述 作为中 ...
- Windows服务的安装,启动,停止和卸载
直接贴代码如下 public class RunServices{/// <summary>/// 安装并启动服务/// </summary>/// <param nam ...
- Oracle 11g 基于CentOS7安装并启动em
2019独角兽企业重金招聘Python工程师标准>>> Oracle 11g 基于CentOS7安装并启动em 1.可以在虚拟机或者服务器上安装centos,具体过程省略,建议使用最 ...
- MongoDB安装和启动
环境:Linux,MongoDB版本2.2.2: MongoDB的安装和启动都比较简单 1.解压 mongodb-linux-i686-2.2.2.tgz 到/usr/local/目录下: 这里我的目 ...
- 永洪Desktop安装后启动提示缺少libv8_libbase.dll文件解决办法
A:安装后启动产品时出现图中报错 2. 解决办法 下载对应的dll文件,将其放入对应的目录中 D:\Yonghong desktop\YonghongBI\Yonghong\vooltdb\bin 附 ...
- SVN的安装和启动SVN的安装
SVN的安装和启动SVN的安装 i. windows下安装SVN 首先要先下载SVN服务器,下载地址https://www.visualsvn.com/downloads/ 下载软件VisualSVN ...
最新文章
- Numpy入门教程:03.数组操作
- android 中自定义安装,AndroidStudio 自定义配置
- 苹果:高通的“非法行为”损害了整个行业
- ffmpeg与x264有什么区别?
- JVM学习笔记(四)
- win10电脑黑屏只有鼠标箭头_win7开机黑屏只有鼠标怎么办,我来教你解决
- 一步一步学WF系列(四)——工作流模拟登陆
- Spring源码追踪3——AOP机制
- D3 selectselectAll
- Java 学习路线之四个阶段
- C# 人民币大小写转换正则表达式
- Kafka配置3--Windows下配置Kafka集群
- 30 道 MySQL 基础知识
- Photoshop CC 2020软件安装教程
- 微信小程序-模拟器某些页面空白-引用 VantUI 后,页面空白
- tplink怎么进去_怎么进入TP-Link路由器设置界面? | 192路由网
- 微信封号被限制的几种原因及解决方法
- google chrome 官方下载安装的方法和离线包官方下载
- 解决 Successfully created project '' on GitHub, but initial push failed: Could not read from remote
- 计算机本科 很多很多科目的总结