Locust性能测试1--简介安装及基本使用
1. Locust简介
Locust是易于使用的分布式用户负载测试工具,旨在对网站(或其他系统)进行负载测试,并弄清一个系统可以处理多少个并发用户,Locust翻译过来是蝗虫的意思,在测试期间,意在一群蝗虫用户会攻击您的网站系统。您可以使用Python代码定义每个用户的行为,并且通过web UI实现监控集群的过程,Locust完全基于事件,因此可以再一台计算机支持数千个并发用户。- 不同于常用的测试工具,
LR,Jmeter,Locust使用的不是线程,而是gevent 
2. 环境安装
pip3 install locust
Mac也可以直接通过Homebrew安装查看安装结果
locust --help
Usage: locust [OPTIONS] [UserClass ...]
Common options:
  -h, --help            show this help message and exit
  -f LOCUSTFILE, --locustfile LOCUSTFILE
                        Python module file to import, e.g. '../other.py'.
                        Default: locustfile
  --config CONFIG       Config file path
  -H HOST, --host HOST  Host to load test in the following format:
                        http://10.21.32.33
  -u NUM_USERS, --users NUM_USERS
                        Number of concurrent Locust users. Only used together
                        with --headless
  -r HATCH_RATE, --hatch-rate HATCH_RATE
                        The rate per second in which users are spawned. Only
                        used together with --headless
  -t RUN_TIME, --run-time RUN_TIME
                        Stop after the specified amount of time, e.g. (300s,
                        20m, 3h, 1h30m, etc.). Only used together with
                        --headless
  -l, --list            Show list of possible User classes and exit
........
3. 简单使用
- 访问伊洛个人博客主页 https://yiluotalk.com/
 
from locust import HttpUser, task, between
class LocustDemo(HttpUser):
    wait_time = between(2, 5)  # 模拟用户等待2到5s然后执行
    @task
    def index_blog(self):  # 定义函数博客首页
        header = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) "
                          "Chrome/83.0.4103.61 Safari/537.36 "
        }  # 请求头
        response = self.client.get('', headers=header)  # 同request用法基本一致
        assert response.status_code == 200  # 断言请求返回200
        print(response.status_code, response.text[:1000])  # 打印状态码及返回text
if __name__ == "__main__":
    import os
    os.system("locust -f demo.py --host=https://yiluotalk.com/")  # 执行脚本访问伊洛的博客主页 https://yiluotalk.com/
Locust也是用的request库,所以基本请求方式与request库相同
4. 启动测试
locust -f demo.py --host=https://yiluotalk.com/
- GUI模式,浏览器输入 http://127.0.0.1:8089/显示如下页面

 - Number of users to simulate 设置虚拟用户总数
 - Hatch rate (users spawned/second) 每秒启动虚拟用户数
 - Host 压测地址
 - Start swarming '蝗虫入境'
 

- 接口返回
 
200 <!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 4.1.1">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">
<script id="hexo-configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    hostname: new URL('https://yiluotalk.com').hostname,
    root: '/',
    scheme: 'Pisces',
    version: '7.6.0',
    exturl: false,
    sidebar: {"position":"left","display":"post","padding":18,"offset":12,"onmobile":fals ....

- 压测过程中可以随时通过edit来提高用户并发数

 - 表格charts 可以监控rps、平均响应时间、虚拟用户并发数

 - 报告结果也可以下载成
CSV格式 
5. 简单的总结
实际工作中确实常用到的还是Jmeter会比较多一些,但是有句老话叫:“用尽天下工具,不如心中有码”, 如果你喜欢更“随性的定制化”,那么就可以试试Locust
Locust性能测试1--简介安装及基本使用的更多相关文章
- Locust性能测试工具的安装及实际应用
		
一.安装Locust 安装Locust之前先安装的库:gevent库:第三方库,gevent为python提供了比较完善的协程支持.使用gevent,可以获得极高的并发性能. pip install ...
 - python locust 性能测试:locust安装和一些参数介绍
		
安装参考 https://www.cnblogs.com/fnng/p/6081798.html <虫师大大的,很详细> ps:python3.7暂不支持locust:python3安装建 ...
 - Locust性能测试框架,从入门到精通
		
1. Locust简介 Locust是使用Python语言编写实现的开源性能测试工具,简洁.轻量.高效,并发机制基于gevent协程,可以实现单机模拟生成较高的并发压力. 主要特点如下: 使用普通的P ...
 - Locust性能测试学习总结
		
Locust学习总结分享 简介: Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学.它的主要思想就是模拟一群用户将访问你的网站.每 ...
 - Locust性能测试
		
https://www.cnblogs.com/yoyoketang/p/9638151.html https://www.cnblogs.com/yoyoketang/p/9642242.html ...
 - Python Locust性能测试框架实践
		
[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...
 - 性能测试框架Multi-Mechanize安装与使用
		
python模块介绍- multi-mechanize 通用的性能测试工具 简介 Multi-Mechanize 是一个开源的性能和负载测试框架,它并发运行多个 Python 脚本对网站或者服务生成负 ...
 - Locust性能测试_百度案例
		
一.安装: 1.Locust在PyPI上可用,可以通过pip或easy_install安装:pip install locustio 2.查看Locust可用选项:loc ...
 - Spark简介安装和简单例子
		
Spark简介安装和简单例子 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark S ...
 
随机推荐
- API返回延迟,FPM重启后恢复之后又重现 问题解决方案
			
背景 最近在提供后台API时,提供了一个简单逻辑的接口 部署在测试环境,自测没问题,提交测试 突然有一天,接口响应延迟严重,几乎每次都是3-4秒返回 这对于一个接口来说,肯定是有问题的 于是便有了以下 ...
 - 修改docker中mysql登入密码(包括容器内和本地远程登入的密码)
			
查看docker中正在运行的容器 docker ps 进入MySQL 容器中 sudo docker exec -it cd800a1cd503 /bin/bash 在容器中: /etc/mysql/ ...
 - 第一部分_Mac技巧
			
原文是"池建强"的微信文章,公众号为"MacTalk" 第一天 直接在终端里输入 $ say "英文单词",Mac就会拼读该单词 第二天 使 ...
 - PHP array_pad() 函数
			
实例 返回 5 个元素,并将 "blue" 值插入到数组的新元素中: <?php$a=array("red","green");pri ...
 - PHP next() 函数
			
实例 输出数组中的当前元素和下一个元素的值: <?php$people = array("Peter", "Joe", "Glenn" ...
 - luogu P5892 [IOI2014]holiday 假期 决策单调性优化dp 主席树
			
LINK:holiday 考虑第一个subtask. 容易想到n^2暴力枚举之后再暴力计算答案. 第二个subtask 暴力枚举终点可以利用主席树快速统计答案. 第三个subtask 暴力枚举两端利用 ...
 - FastAPI框架入门 基本使用, 模版渲染, form表单数据交互, 上传文件, 静态文件配置
			
安装 pip install fastapi[all] pip install unicorn 基本使用(不能同时支持,get, post方法等要分开写) from fastapi import Fa ...
 - 使用MPI进行分布式内存编程(2)
			
MPI的英文全称为message passing interface,中文名为消息传递接口,他不是一种新的语言,而是一个可以被C,C++,Fortran程序调用的库. 预备知识 1.编译与执行 使用类 ...
 - 调用thrift出现No handlers could be found for logger "thrift.transport.TSocket"
			
1.问题 使用thrift版本为0.10,在0.8没有这个问题 其中ncTAgent是代码中封装的thrift接口的结构,在thrift服务端没有启动的时候,应该拋错为连接不到.但是拋错的堆栈输出之前 ...
 - 【av68676164(p43-p47)】物理内存管理
			
7.2.1 分区内存管理 把内存分为若干个区给用户使用 单一区存储管理 分区存储管理 固定分区 动态分区 单一区存储管理(不分区存储管理) 定义:用户区不分区,完全被一个程序占用.例如:DOS 优点: ...