Locust优势在哪里

常用性能指标
  • HPS(Hits Per Second) :每秒点击次数,单位是次/秒。
  • TPS(Transaction Per Second):系统每秒处理交易数,单位是笔/秒。
  • QPS(Query Per Second):系统每秒处理查询次数,单位是次/秒。对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS=RPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求.
  • RPS(Requests Per Second):每秒请求数,这里还有两个我们通常认为和RPS相等的名词,arrival rate、TPS。
  • 并发数:系统同时处理的request/事务数
  • 响应时间:一般取平均响应时间
  • QPS(TPS):并发数/平均响应时间

 

性能工具对比:
\   LoadRunner Jmeter Locust
授权方式 商业收费  开源免费 开源免费
开发语言 C/Java Java Python
测试脚本形式 C/Java GUI 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工具来做性能测试,另外一个原因是它可以让我们换一种方式认识性能测试,可能更容易看清性能测试的本质。

posted @ 2019-07-28 16:26  helloTerry1998  阅读(1025)  评论(0编辑  收藏  举报