阅读全文需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工具实战之“蝗虫”降世的更多相关文章

  1. Python3.6 性能测试框架Locust的搭建与使用

    背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 方法一: pip install locustio 方法二: 开发工具:pycharm 使用 ...

  2. python locust 性能测试:locust安装和一些参数介绍

    安装参考 https://www.cnblogs.com/fnng/p/6081798.html <虫师大大的,很详细> ps:python3.7暂不支持locust:python3安装建 ...

  3. Python 3.6 性能测试框架Locust安装及使用

    背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“setting” 点 ...

  4. 性能测试开源小工具——http_load介绍

    淘测试 性能测试开源小工具——http_load介绍 meizhu 发表于:2009-07-02 浏览:3552次 评论:1次 所属分类: 性能测试 性能测试开源小工具——http_load介绍 ht ...

  5. Android 性能测试——Heap Viewer 工具

    Android 性能测试--Heap Viewer 工具 Heap Viewer能做什么? 实时查看App分配的内存大小和空闲内存大小 发现Memory Leaks Heap Viewer使用条件 5 ...

  6. Android 性能测试——Memory Monitor 工具

    Android 性能测试--Memory Monitor 工具 Memory Monitor能做什么? 实时查看App的内存分配情况 快速判断App是否由于GC操作造成卡顿 快速判断App的Crash ...

  7. Crash工具实战-变量解析【转】

    转自:http://blog.chinaunix.net/uid-14528823-id-4358785.html Crash工具实战-变量解析 Crash工具用于解析Vmcore文件,Vmcore文 ...

  8. 《Python3反爬虫原理与绕过实战》作者韦世东

    可以用(k1,k2)-k1来设置,如果有重复的key,则保留key1,舍弃key2/打印appleMap{1=Apple{id=1,name=苹果1,money=3.25,num=10},2=Appl ...

  9. locust工具使用详解

    今年负责部门的人员培养工作,最近在部门内部分享和讲解了locust这个工具,今天再博客园记录下培训细节 一.简介 1.优势 locust是python语言开发的一款的开源的的性能测试框架,他比jmet ...

随机推荐

  1. ggstatsplot绘图|统计+可视化,学术科研神器

    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/zdSit97SOEpbnR18ARzixw 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号. ...

  2. Helm神器,让管理Kubernetes像yum安装包一样简单

    目录 一.什么是Helm 二.安装 1.安装helm客户端 2.安装Tiller 3.创建服务端 4.给Tiller授权 5.为 Tiller 设置帐号 6.验证Tiller是否安装成功 三.Helm ...

  3. kali更新源地址更改

    问题: Hit:1 http://mirrors.ustc.edu.cn/kali kali-rolling InReleaseIgn:2 http://mirrors.ustc.edu.cn/kal ...

  4. Object 对象方法学习之(1)—— 使用 Object.assign 复制对象、合并对象

    作用 Object.assign() 方法用于把一个或多个源对象的可枚举属性值复制到目标对象中,返回值为目标对象. 语法 Object.assign(target, ...sources) 参数 ta ...

  5. 【XSY2564】sequence

    Description [题目描述] 给定一个长度为n的由['0'..'9']组成的字符串s,v[i,j]表示由字符串s第i到第j位组成的十进制数字. 将它的某一个上升序列定义为:将这个字符串切割成m ...

  6. 死磕 java线程系列之终篇

    (手机横屏看源码更方便) 简介 线程系列我们基本就学完了,这一个系列我们基本都是围绕着线程池在讲,其实关于线程还有很多东西可以讲,后面有机会我们再补充进来.当然,如果你有什么好的想法,也可以公从号右下 ...

  7. lucas定理(模板题题解)

    题目很简单,很暴力,就是组合数,没有其他的. 但是直接暴力会炸wow 我们可以利用Lucas定理来分解字问题. Lucas定理:C(n,m)(mod p)=C(n%p,m%p)*C(n/p,m/p)( ...

  8. 如何处理消息队列消费过程中的重复消息&如何实现幂等性

    什么是幂等 幂等本来是数学上的概念,它的定义是这样的: 如果一个函数 f(x) 满足:f(f(x)) = f(x),则函数 f(x) 满足幂等性. 在计算机领域用来描述一个操作.方法或者服务.一个幂等 ...

  9. 裸板中中断异常处理,linux中断异常处理 ,linux系统中断处理的API,中断处理函数的要求,内核中登记底半部的方式

    1.linux系统中的中断处理  1.0裸板中中断异常是如何处理的?     以s5p6818+按键为例          1)按键中断的触发        中断源级配置            管脚功 ...

  10. 802.11n速率集