Locust性能测试(负载测试)

Locust负载测试(通过阿西河的笔记整理)

Locust 是什么?

  1. Locust 是一个比较容易上手的分布式用户负载测试工具。

  2. 它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Jmeter 也可以处理这种场景,但是个人感觉 Jmeter 在这方面做的不如 Locust 专业。

  3. Locust 的运行原理是完全基于事件运行的,因此可以在一台计算机上支持数千个并发用户。

Locust 的 特征

  1. 不需要在 UI 界面上傻乎乎的点击,只需正常的写写代码就可以了。
  2. Locust 基于协程而不是回调,这样会让您的代码类似于正常的 Python 阻塞代码那样同步执行。

Locust与jmeter、Loadrunner的区别

  1. Locust完全基本 Python 编程语言,采用 Pure Python 描述测试脚本,并且 HTTP 请求完全基于 Requests 库。除了 HTTP/HTTPS 协议,Locust 也可以测试其它协议的系统,只需要采用 Python 调用对应的库进行请求描述即可.
  2. LoadRunner 和 Jmeter 这类采用进程和线程的测试工具,都很难在单机上模拟出较高的并发压力。Locust 的并发机制摒弃了进程和线程,采用协程(gevent)的机制。协程避免了系统级资源调度,由此可以大幅提高单机的并发能力。

windows下安装Locust

  1. dos命令    pip3 install locustio
  2. 如果无法进行下载    dos命令:pip3 install name-of-file.whl,然后在操作1

安装依赖分析

  1. 打开 Locust 安装目录下的 setup.py 文件。查看安装要求    install_requires=["gevent>=1.1.2", "flask>=0.10.1", "requests>=2.9.1", "msgpack-python>=0.4.2", "six>=1.10.0", "pyzmq==15.2.0"]
    1. gevent 是在 Python 中实现协程的一个第三方库。协程,又称微线程(Coroutine)。使用 gevent 可以获得极高的并发性能。
    2. flask 是 Python 的一个 Web 开发框架。
    3. Requests 用来做 HTTP 接口测试。
    4. msgpack-python 是一种快速、紧凑的二进制序列化格式,适用于类似 JSON 的数据。
    5. six 提供了一些简单的工具用来封装 Python2 和 Python3 之间的差异性。
    6. pyzmq 如果你打算运行 Locust 分布在多个进程 / 机器,建议你安装 pyzmq。
  2. 当我们在安装 Locust 时,它会检测我们当前的 Python 环境是否已经安装了这些库,如果没有安装,它会先把这些库一一装上。并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本。我们也可以事先把这些库全部按要求装好,再安装 Locust 时就会快上许多。

Locust的使用

猜你喜欢

转载自www.cnblogs.com/wp950416/p/12171670.html