性能测试专题:Locust工具实战之“蝗虫”降世
阅读全文需5分钟。
1. 前言
在上一篇文章中,我们已经为大家介绍了什么是Locust,具体可参照:性能专题:Locust工具实战之开篇哲学三问,简单来说,Locust 是基于 Python 语言下的一个性能测试库,如果要想使用它来做性能测试必须要先安装 Python。
Locust支持的Python版本有:2.7, 3.5, 3.6, 3.7, 3.8。
Python安装较为简单,此处省略,以Python3.8为例,读者可自行查阅官网安装使用介绍。
https://docs.python.org/3/using/index.html
2. 为何取名“蝗虫降世”
本篇在标题上面,卖弄了一下关子,原名应该为: 《性能专题:Locust工具实战之Locust安装》,但想想,Locust意为“蝗虫”,安装本身的“作用”无非也是让一个事物,从没有到有一个过程。一篇文章,优质的内容固然重要,但一个具有吸引力、有创意的标题也同等重要,想起今年上映的一部备受好评的电影:《哪吒之魔童降世》,正因为这个名称,才吸引我去电影院观看,也算是我为这部电影50亿高票房,贡献了一点绵薄之力,因此本篇文章,改名为“蝗虫降世”。
3. Loucst 安装
Locust安装过程并不难,常见的有两种安装方式。
第一种,直接通过PIP命令形式安装,
Python 2.7:
$ python -m pip install locustio
或
$ pip install locustio
Python 3:
$ python3 -m pip install locustio
或
$pip3 install locustio
除此之外,还可以根据项目源码地址指定分支的形式来安装locust。
以Python 3为例,安装master分支上面的代码。
$ python3 -m pip install -e git://github.com/locustio/locust.git@master#egg=locustio
方式二,GitHub下载安装
1、进入到Locust GitHub项目地址:
https://github.com/locustio/locust/
2、将项目克隆下来,通过Python 执行 setup.py 文件
...\locust> python setup.py install
安装成功后可以输入 `pip show locust` 命令查看是否安装成功,以及通过 `locust -help` 命令查看帮助信息。
PS: 当前最新Locust版本为0.13.2
注意事项:
运行大规模测试时,建议在Linux机器上执行此操作,因为gevent在Windows下的性能比Linux下面要差很多。
如果打算运行Locust 分布在多个进程/机器,需要安装pyzmq。
更详细的安装介绍可参照官方安装文档:
https://docs.locust.io/en/stable/installation.html#installing-locust-on-macos
4. Locust 安装依赖分析
这里简单介绍 Locust 都基于了哪些库。打开 Locust 安装目录下的 setup.py 文件。查看安装要求:
install_requires=[
"gevent>=1.2.2",
"flask>=0.10.1",
"requests>=2.9.1",
"msgpack-python>=0.4.2",
"six>=1.10.0",
"pyzmq>=16.0.2",
"geventhttpclient-wheels==1.3.1.dev2",
]
gevent:在Python中实现协程的第三方库(一种网络库),协程又叫微线程Corouine,使用gevent可以获取极高的并发能力。
flask:Python下的一个Web开发框架,和Django相当。
requests:支持HTTP/HTTPs请求访问的库。
msgpack-python:一种快速、紧凑的二进制序列化格式,使用类似JSON的数据,主要提供MessagePack数据序列化及反序列化的方法。
six:Python 2和Python 3兼容库,用来封装处理Python 2和Python 3之间的差异性。
pyzmq:主要用来实现Locust的分布式模式运行,安装这个第三方库,可以把Locust运行在多个进程或多个机器(分布式)。
当我们在安装 Locust 时,它会检测我们当前的 Python 环境是否已经安装了这些库,如果没有安装,它会先把这些库一一装上。并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本。我们也可以事先把这些库全部按要求装好,再安装Locust时就会快上许多。
5. 小结
本文介绍了Locust安装方法,也是为后续Locust实战示例,提前准备好环境。如果你对Locust性能工具已经提起学习兴趣了,请趁早动手起来。
未完待续,下一篇开始实战~
希望这篇文章能帮到你!更多干货文章请关注我们。
性能测试专题:Locust工具实战之“蝗虫”降世的更多相关文章
- Python3.6 性能测试框架Locust的搭建与使用
背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 方法一: pip install locustio 方法二: 开发工具:pycharm 使用 ...
- python locust 性能测试:locust安装和一些参数介绍
安装参考 https://www.cnblogs.com/fnng/p/6081798.html <虫师大大的,很详细> ps:python3.7暂不支持locust:python3安装建 ...
- Python 3.6 性能测试框架Locust安装及使用
背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“setting” 点 ...
- 性能测试开源小工具——http_load介绍
淘测试 性能测试开源小工具——http_load介绍 meizhu 发表于:2009-07-02 浏览:3552次 评论:1次 所属分类: 性能测试 性能测试开源小工具——http_load介绍 ht ...
- Android 性能测试——Heap Viewer 工具
Android 性能测试--Heap Viewer 工具 Heap Viewer能做什么? 实时查看App分配的内存大小和空闲内存大小 发现Memory Leaks Heap Viewer使用条件 5 ...
- Android 性能测试——Memory Monitor 工具
Android 性能测试--Memory Monitor 工具 Memory Monitor能做什么? 实时查看App的内存分配情况 快速判断App是否由于GC操作造成卡顿 快速判断App的Crash ...
- Crash工具实战-变量解析【转】
转自:http://blog.chinaunix.net/uid-14528823-id-4358785.html Crash工具实战-变量解析 Crash工具用于解析Vmcore文件,Vmcore文 ...
- 《Python3反爬虫原理与绕过实战》作者韦世东
可以用(k1,k2)-k1来设置,如果有重复的key,则保留key1,舍弃key2/打印appleMap{1=Apple{id=1,name=苹果1,money=3.25,num=10},2=Appl ...
- locust工具使用详解
今年负责部门的人员培养工作,最近在部门内部分享和讲解了locust这个工具,今天再博客园记录下培训细节 一.简介 1.优势 locust是python语言开发的一款的开源的的性能测试框架,他比jmet ...
随机推荐
- 使用 Helm Chart 部署及卸载 istio
部署 istio 1.添加 istio 官方的 helm 仓库 helm repo add istio https://storage.googleapis.com/istio-release/rel ...
- FreeSql 已支持 .NetFramework 4.0、ODBC 访问
FreeSql 开源发布快一年了,目前主仓库代码量 64118 行,用 git 命令统计的命令如下: find . "(" -name "*.cs" " ...
- JdbcTemplate增删改
(1)Accountsdao层 //删除单个账户 int delaccount(Integer accountid); //添加单个用户 int addaccount(Accounts account ...
- Core3.0的 安装与坑坑坑!!!
Core3的 SDK下载地址是:https://dotnet.microsoft.com/download/dotnet-core/3.0 ! 不要下载preview8!!!,请先下载 previe ...
- DirectX9:第一章 初始化Direct3D
一.Direct3D概述 Direct3D是一套底层图形API,可以被视为应用程序与图形设备交互的中介. 应用程序.Direct3D以及硬件之间的交互关系: 在Direct3D和图形设备之间有一个环节 ...
- 持久层框架JPA与Mybatis该如何选型
一.现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis.JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernat ...
- AutoCad 二次开发 .net 之相同块的自动编号
主要步骤: 一.获取一个块的id: 其中oId就是了. 二.通过次oId获取块引用blkRef: 三.通过它获取所有相同的块引用的id集合: 四.通过步骤三的集合得到所有的块引用得到集合listBr: ...
- 真正的打包scrapy单文件(不包含cfg)
前置:https://www.cnblogs.com/luocodes/p/11827850.html 解决最后一个问题,如何将scrapy真正的打包成单文件 耗了一晚上时间,今天突然有灵感了 错误分 ...
- STL库学习笔记(一)——什么是STL?
小明是一个很牛逼的程序员,在国际标准化组织工作. 他现在正在设计新一代的C++标准,标准中有一个待实现的函数:findMax(),这个函数要求使用者输入任何类型的数据,他都能找到最大的一个. 于是他想 ...
- Vue.js应用基础
声明 这篇博文是我的Vue学习记录,其中参杂了不少我个人的理解,由于我并没有继续学习Vue的源码,所以不能保证这些理解都是正确的.如果这篇博文有幸被你读到,请带着批判的心情去审视它. 如果你发现了其中 ...