【总结】Locust性能测试学习-【附locust安装步骤】

最近学习这个locust是一个开源的python压力测试的框架,代码相对简单,涵盖的东西却不少。

 

locust是基于python的性能测试工具、支持python2.7及其以上的版本、相对于主流的LR与Jmeter工具使用的方式不一样、locust是通过编写python代码来完成性能测试的。

 

Locust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。
这个想法是,在测试期间,一群蝗虫(Locust)会攻击你的网站。您定义了每个蝗虫Locust(或测试用户)的行为,并且实时地从Web UI监视群集过程。这将有助于您在让真正的用户进入之前进行测试并识别代码中的瓶颈。


Locust完全基于事件,因此可以在一台计算机上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调。相反,它通过协程(gevent)机制使用轻量级过程。每个蝗虫蜂拥到你的网站实际上是在自己的进程内运行(或者是greenlet,这是正确的)。这允许您在Py​​thon中编写非常富有表现力的场景,而不会使代码复杂化。

** gevent是第三方库,通过greenlet实现协程。greenlet是python的并行处理的一个库。 python 有一个非常有名的库叫做 stackless ,用来做并发处理, 主要是弄了个叫做tasklet的微线程的东西, 而greenlet 跟stackless的最大区别是greenlet需要你自己来处理线程切换, 就是说,你需要自己指定现在执行哪个greenlet再执行哪个greenlet。**

主要好的一些学习地址如下:

  1. 最好的最全的是先从官网开始了解。Locust 官方网站:https://www.locust.io/
  2. locust的介绍和简单使用:https://www.cnblogs.com/imyalost/p/9758189.html
  3. 入门、复杂场景、其他、易懂:https://www.jianshu.com/nb/32734542
  4. locust性能测试(虫师、详细):http://www.testclass.net/locust/introduce/
  5. 深入浅出开源性能测试工具 Locust(使用篇):https://debugtalk.com/post/head-first-locust-user-guide/
  6. locust性能测试1-5:https://www.cnblogs.com/yoyoketang/tag/locust/


总结:

这些我看了2周,并在我们自己的项目中实际操作过,基本的没问题,后面会继续学习,研究,多看多操作很重要,后面打算好好看看python的requests库

之前学习python会只用到这个库,但是很多时候都不知道里面的意思,库里面有哪些内容,一直没有去好好细化的学习这个。下一步打算好好看看。

 


性能工具对比

LoadRunner 是非常有名的商业性能测试工具,功能非常强大。使用也比较复杂,目前大多介绍性能测试的书籍都以该工具为基础,甚至有些书整本都在介绍 LoadRunner 的使用。

Jmeter 同样是非常有名的开源性能测试工具,功能也很完善,在本书中介绍了它作为接口测试工具的使用。但实际上,它是一个标准的性能测试工具。关于Jmeter相关的资料也非常丰富,它的官方文档也很完善。

Locust 同样是性能测试工具,虽然官方这样来描述它 “An open source load testing tool.” 。但其它和前面两个工具有着较大的不同。相比前面两个工具,功能上要差上不少,但它也并非优点全无。

  • Locust 完全基本 Python 编程语言,采用 Pure Python 描述测试脚本,并且 HTTP 请求完全基于 Requests 库。除了 HTTP/HTTPS 协议,Locust 也可以测试其它协议的系统,只需要采用Python调用对应的库进行请求描述即可。

  • LoadRunner 和 Jmeter 这类采用进程和线程的测试工具,都很难在单机上模拟出较高的并发压力。Locust 的并发机制摒弃了进程和线程,采用协程(gevent)的机制。协程避免了系统级资源调度,由此可以大幅提高单机的并发能力。

正是基于这样的特点,使我选择使用Locust工具来做性能测试,另外一个原因是它可以让我们换一种方式认识性能测试,可能更容易看清性能测试的本质。(整理)

.loadrunnerjmeterlocustwrk
分布式压力支持支持支持不支持
单机并发能力
并发机制进程/线程线程协程线程
开发语言C/JavaJavaPythonC
报告与分析完善简单图标简单图表简单结果
授权方式商业收费开源免费开源免费开源免费
测试脚本形式C/JavaGUIPythonC
资源监控支持不支持不支持不支持

 


附locust安装步骤

环境准备:
python3.6
windows电脑
locust

1、首先安装python,操作步骤见:python环境安装(一)

2、安装后,再安装locust只需命令: pip install locustio

前几次都失败了,不知道哪里错了,后面查了下都是这样写,我就复制了,再粘贴就好了、pip install locustio

pip install locustio
使用locust -V可查看是否安装成功。查看到安装的locust的版本


这里想简单介绍 Locust 都基于了哪些库。当我们在安装 Locust 时,它会检测我们当前的 Python 环境是否已经安装了这些库,如果没有安装,它会先把这些库一一装上。并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本。我们也可以事先把这些库全部按要求装好,再安装Locust时就会快上许多。

 

gevent 是在 Python 中实现协程的一个第三方库。协程,又称微线程(Coroutine)。使用gevent可以获得极高的并发性能。

flask 是 Python 的一个 Web 开发框架。

Requests 用来做 HTTP 接口测试。

msgpack-python 是一种快速、紧凑的二进制序列化格式,适用于类似JSON的数据。

six 提供了一些简单的工具用来封装 Python2 和 Python3 之间的差异性。

pyzmq 如果你打算运行 Locust 分布在多个进程/机器,建议你安装pyzmq。


放一个开始自己安装locust失败的截图,到现在不知道哪里写错了。很奇怪。。。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值