Locust学习记录之locust初识

原创 2018年04月16日 00:14:35

locust是什么:

locust是一个用python写的用于进行性能测试的测试框架。利用协程达到高并发。(以greenlet为核心的一个并发框架,使用epoll事件监听机制)

有什么特点:

1、直接用python代码编写场景。基于协程,避免回调

2、支持大并发:单机支持大并发,同时支持分布式

3、提供测试结果页面:测试结果可以通过HTML+js的页面进行展示,实时显示测试细节,易于扩展。

4、支持测试任何系统

6、整个测试框架易于扩展

以上只是初略地知道了这个测试框架的特点,到底有多好用,用了才知道。

安装:

直接从github上下载源代码,pip setup.py install 就可以了。windows中运行执行locust有提示找不到.py文件证明已经安装了locust,可以简单利用locust测试用例py文件验证下即可。

写个简单的脚步(pythontest.py):

from locust import TaskSet, task, HttpLocust
class UserBehavior(TaskSet):
    def on_start(self):
        self.index = 0

    @task
    def test_visit(self):
        url = self.locust.share_data[self.index]
        print('visit url: %s' % url)
        self.index = (self.index + 1) % len(self.locust.share_data)
        self.client.get(url)


class WebsiteUser(HttpLocust):
    host = 'http://www.baidu.com'
    task_set = UserBehavior
    share_data = ['/']
    min_wait = 1000
    max_wait = 3000

在windows上运行,在该目录上打开cmd:

locust -f pythontest.py --no-web -c 1 -n 1

>locust -f pythontest.py --no-web -t1 -c1
[2018-04-16 00:07:58,572] DESKTOP-S9R0DUT/INFO/locust.main: Run time limit set to 1 seconds
[2018-04-16 00:07:58,573] DESKTOP-S9R0DUT/INFO/locust.main: Starting Locust 0.8
[2018-04-16 00:07:58,574] DESKTOP-S9R0DUT/INFO/locust.runners: Hatching and swarming 1 clients at the rate 1 clients/s...
 Name                                                          # reqs      # fails     Avg     Min     Max  |  Median   req/s
--------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                              0     0(0.00%)                                       0.00


[2018-04-16 00:07:58,574] DESKTOP-S9R0DUT/INFO/stdout: visit url: /
[2018-04-16 00:07:58,575] DESKTOP-S9R0DUT/INFO/stdout:
[2018-04-16 00:07:59,573] DESKTOP-S9R0DUT/INFO/locust.main: Time limit reached. Stopping Locust.
[2018-04-16 00:07:59,574] DESKTOP-S9R0DUT/INFO/locust.main: Shutting down (exit code 0), bye.
 Name                                                          # reqs      # fails     Avg     Min     Max  |  Median   req/s
--------------------------------------------------------------------------------------------------------------------------------------------
 GET /                                                              1     0(0.00%)      45      45      45  |      45    0.00
--------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                              1     0(0.00%)                                       0.00


Percentage of the requests completed within given times
 Name                                                           # reqs    50%    66%    75%    80%    90%    95%    98%    99%   100%
--------------------------------------------------------------------------------------------------------------------------------------------
 GET /                                                               1     45     45     45     45     45     45     45     45     45
--------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                               1     45     45     45     45     45     45     45     45     45

展示了一些常规的响应时间,TPS,正确率的基础信息。更多的应用和探索待继续。主要计划按平时的性能测试应用场景看如何用locust解决。


Web 全栈第三周(两周学习时间)

Web 前端工程师课程 第3周 (new)
  • 2017年11月06日 20:04

Locust压力测试使用总结

Locust测试工具 Locust是完全基于Python,http请求完全是基于requests库。Locust支持http、https协议,还支持测试其他协议,websocket等,只要采用Pyth...
  • JOJOY_tester
  • JOJOY_tester
  • 2017-09-10 22:44:27
  • 1288

性能测试 - LocustIO 验证请求结果

性能测试 - LocustIO 验证请求结果 Max.Bai 2017-04 1. 默认验证请求结果 Locust 默认会对请求做校验,如果是200就是成功的,不然就是失败 不用做任...
  • max229max
  • max229max
  • 2017-04-21 19:08:16
  • 687

使用locust做服务器压力测试

高并发的性能测试对于后台的压力性能测试,传统上有jmeter等工具。但这些工具并不能很好地回答一个问题,那就是,我们的服务器能同时支持多少个用户使用? 工具查看了这篇文章,首选locust,毕竟...
  • u014084065
  • u014084065
  • 2016-12-22 15:24:20
  • 3298

深入浅出开源性能测试工具Locust(使用篇)

在《【LocustPlus序】漫谈服务端性能测试》中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具。然而,当前在网络上针对Locus...
  • lizzy05
  • lizzy05
  • 2017-04-26 12:05:45
  • 4607

9.性能测试工具Locust的高级使用——分布式使用Locust及定制Locust

Locust是一个使用Python语言开发的分布式并发测试工具,本文介绍了分布式使用Locust的方法,满足高规格并发测试需求,以及根据Locust的源码修改Locust工具的方法。...
  • a464057216
  • a464057216
  • 2015-09-14 22:19:33
  • 7689

Locust性能测试框架介绍与安装

Locust是使用Python开发的支持分布式的一款开源压力测试工具,Locust在测试时,会产生大量的用户对系统进行访问,每个用户的行为是通过Python代码控制的,并且整个测试过程可以在Web的U...
  • zhengshaolong8125
  • zhengshaolong8125
  • 2017-08-03 16:27:53
  • 844

Locust——对其他协议(非http协议)的脚本开发和使用

Locust是一款可扩展的,分布式的,性能测试的,开源的,用Python编写的性能测试工具。对于测试HTTP协议的接口是比较方便的,但是它也支持测试别的协议的接口,不过需要重写Locust类。   接...
  • wqzmxj
  • wqzmxj
  • 2017-09-08 14:43:42
  • 950

8.性能测试工具Locust的高级使用——熟悉相关的类和方法、特性

Locust是使用Python开发的分布式并发测试工具,本文介绍了Locust的高级用法,深入介绍相关的类、方法和特性,结合7种钩子函数可以完成工作做各种复杂的测试需求。...
  • a464057216
  • a464057216
  • 2015-09-12 15:04:29
  • 6627

6.性能测试工具Locust介绍和安装

一种使用Python开发的并发测试工具:Locust。它能够分布式部署,理论上支持任意规模的并发,测试代码由Python实现。本文介绍了其安装方法。...
  • a464057216
  • a464057216
  • 2015-09-12 10:10:18
  • 5858
收藏助手
不良信息举报
您举报文章:Locust学习记录之locust初识
举报原因:
原因补充:

(最多只允许输入30个字)