性能测试性能测试@IT·互联网

性能测试:什么是Locust

2017-06-08  本文已影响207人  Yuan_Jie

什么是Locust

Locust是一个容易使用、分布式的压力测试工具。它是用于网站压力测试(或其它系统)并找出多少用户一个系统可以承载。

在测试过程中,策略就是一个Locust的蠕虫将会攻击你的网站。每一个locust的行为(或你使用的测试用户)是你自己定义的,并且蠕虫进程从一个网页视图中被实时监测。这样会帮助你来实现测试,在真实用户使用前定义系统的瓶颈。

Locust是完全基于事件的,因此可以在单台机器中支持数以千计的用户在线。和其它基于事件的程序相比较,它是不需要使用回调的。相反,它通过gevent使用轻量级的进程。每一个locust测试你的网站时,实际上是真实的在内部运行它自己的进程(或greenlet,准确的说)。这样就允许你不使用复杂的回调方法,而是使用Python编写复杂的场景。

特性

背景

Locust被创建是因为我们要解决已经存在的问题。没有一个对于来说可以解决正确的问题,它们没找到核心点。我们尝试了JMeterTsung。这两个工具使用起来都很不错;在工作中,我们多次使用了前者来测试基准。JMeter。JMeter自带了UI交互,这一秒你可能认识这是一件好事。但你很快就会认识到,这是一个PITA,通过一些点击界面箅编码测试场景。第二,JMeter是基于线程的。这就是所有你想模拟的用户,你需要一个独立的线程。不用说,在一台机器实现几千用户是相当产灵活的。

另一方面,由于是使用Erlang编写的,Tsung没有线程问题。它通过使用BEAM自身来实现轻量级线程,并很容易将量级提升。但,当定义测试场景时,Tsung和JMeter一样被限制了。它提供一个基于XML的动态描述语言来定义,在测试时的用户行为。我猜,你可以想像编码实现它的荣耀。当完成你的post请求并从测试日志中生成日志,展示任何图形排序或报告。接下来你就可以理解测试是怎么运行的。

无论如何,在创建Locust时,我们已经尝试罗列这些问题。希望上面的痛点都不存在。

我猜,你会说我们真的只是罗列了我们的好处。我们希望尽可能的实现一些有用的。

作者

许可证

在MIT许可证下的开源许可(查看许可证明细)

上一篇下一篇

猜你喜欢

热点阅读