locust安装

通过pip 安装locust

pip install locustio

需要预先安装python3和pip,这次在安装环境时遇到一些坑,环境中原本使用的python2.6,需要重新安装python3环境,这时候可以安装一个虚拟环境

注:支持的python版本:2.7、3.4、3.5、3.6及以上

虚拟环境安装

  1. 命令安装了python的虚拟环境
pip3 install virtualenv
  1. 创建虚拟机环境
virtualenv /venv
  1. 激活虚拟环境
source /venv/bin/activate

进入了一个全新的python3的环境,你可以安装独立的python依赖了,安装完成之后可以启动程序运行

  1. 退出虚拟环境
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实例)的运行逻辑都会遵循如下规律:

  1. 先执行WebsiteTasks中的on_start(只执行一次),作为初始化
  2. 从WebsiteTasks中随机挑选(如果定义了任务间的权重关系,那么就是按照权重关系随机挑选)一个任务执行
  3. 根据Locust类中min_wait和max_wait定义的间隔时间范围(如果TaskSet类中也定义了min_wait或者max_wait,以TaskSet中的优先),在时间范围中随机取一个值,休眠等待
    重复2~3步骤,直至测试任务终止。

【locust】locust安装与启动相关推荐

  1. Locust的安装和有无Web界面的使用,附脚本示例供参考

    Locust是一个开源的性能测试工具,可以结合python代码(需要有一定的python代码基础)进行用户并发测试,能够测试出一个系统可以并发处理多少个用户,扩展性强 1.安装 需要在python下安 ...

  2. 客快物流大数据项目(八):Docker的安装和启动

    目录 Docker的安装和启动 一.服务器规划 二.安装Docker 1.验证Linux内核版本 <

  3. vmware workstation 安装esx 启动vt功能

    vmware workstation 安装esx 启动vt功能,支持64bit虚拟机,如下所示: 转载于:https://blog.51cto.com/auqf12/1293587

  4. windows10下postgreSQL 下载、安装、启动、关闭

    windows10下postgreSQL 下载.安装.启动.关闭 下载 安装 l设置密码和端口,一直next直到安装完成 环境变量

  5. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议详解 , Kickstart (PXE+DHCP+TFTP+HTTP). PXE环境概述 作为中 ...

  6. Windows服务的安装,启动,停止和卸载

    直接贴代码如下 public class RunServices{/// <summary>/// 安装并启动服务/// </summary>/// <param nam ...

  7. Oracle 11g 基于CentOS7安装并启动em

    2019独角兽企业重金招聘Python工程师标准>>> Oracle 11g 基于CentOS7安装并启动em 1.可以在虚拟机或者服务器上安装centos,具体过程省略,建议使用最 ...

  8. MongoDB安装和启动

    环境:Linux,MongoDB版本2.2.2: MongoDB的安装和启动都比较简单 1.解压 mongodb-linux-i686-2.2.2.tgz 到/usr/local/目录下: 这里我的目 ...

  9. 永洪Desktop安装后启动提示缺少libv8_libbase.dll文件解决办法

    A:安装后启动产品时出现图中报错 2. 解决办法 下载对应的dll文件,将其放入对应的目录中 D:\Yonghong desktop\YonghongBI\Yonghong\vooltdb\bin 附 ...

  10. SVN的安装和启动SVN的安装

    SVN的安装和启动SVN的安装 i. windows下安装SVN 首先要先下载SVN服务器,下载地址https://www.visualsvn.com/downloads/ 下载软件VisualSVN ...

最新文章

  1. Numpy入门教程:03.数组操作
  2. android 中自定义安装,AndroidStudio 自定义配置
  3. 苹果:高通的“非法行为”损害了整个行业
  4. ffmpeg与x264有什么区别?
  5. JVM学习笔记(四)
  6. win10电脑黑屏只有鼠标箭头_win7开机黑屏只有鼠标怎么办,我来教你解决
  7. 一步一步学WF系列(四)——工作流模拟登陆
  8. Spring源码追踪3——AOP机制
  9. D3 selectselectAll
  10. Java 学习路线之四个阶段
  11. C# 人民币大小写转换正则表达式
  12. Kafka配置3--Windows下配置Kafka集群
  13. 30 道 MySQL 基础知识
  14. Photoshop CC 2020软件安装教程
  15. 微信小程序-模拟器某些页面空白-引用 VantUI 后,页面空白
  16. tplink怎么进去_怎么进入TP-Link路由器设置界面? | 192路由网
  17. 微信封号被限制的几种原因及解决方法
  18. google chrome 官方下载安装的方法和离线包官方下载
  19. 解决 Successfully created project '' on GitHub, but initial push failed: Could not read from remote
  20. 计算机本科 很多很多科目的总结

热门文章

  1. ajax异步请求及案例
  2. 美团饿了么CPS红包,别人领红包下单,你拿推广佣金(外卖cps项目带分销裂变-小程序搭建一条龙)
  3. JDBC:使用Statement操作数据库时产生的SQL注入问题原因分析
  4. php 支付宝订单查询_php实现支付宝APP支付功能与源码
  5. 怎样去掉桌面图标阴影(文字背景透明)
  6. 离散哈特莱变换和快速哈特莱变换的实现(MATLAB)
  7. 如何将两个多项式相乘
  8. 嵌入式Linux引导过程之1.3——Xloader的sys_init
  9. 如何将试卷扫描成电子版?几个步骤轻松拿捏
  10. mysql做报表必知