Locust工具在市场上不如Loadrunner / JMeter流行,使用的范围也没有那么广,但不能否认其是一款很不错的工具。我我的以为Locust使用不是那么普遍,主要是由于一下方式:编程
Locust须要必定的Python编程基础,有必定的学习成本。服务器
Locust既有的协议支持有,主要有HTTP等。不少协议只要Python支持便可。网络
UI操做界面,不少时候,用户在使用的时候,会考虑上手容易度,Loadrunner/JMeter都有很强的用户交互设计,在客户端强大的功能下面,用户多线程
可是将来压测工具的趋势,必定是可编程性占据主流。主要缘由主要以下:并发
可编程性能够和开发团队有更好的贴合度,不少传统压测工具很差/不能模拟的场景,均可以经过编码的方式去实现,让测试更加灵活,覆盖度有保证。而且开发人员也能够去实现压测场景脚本。而性能测试人员能够更加注重去分析问题app
省钱。这个理由会让人没法抗拒。不过可能有人要反驳了,JMeter等开源工具不也是免费的吗?是的,软件自己是免费的,可是使用起来不必定是免费的。如今比较流行云平台,全部的环境(开发/测试/UAT/线上)基本都部署在上面。而云平台的一个特性就是按需申请和按需收费。那么在使用诸如Loadrunner/JMeter 这类采用进程和线程的工具,是比较耗费内存的。这也就决定了,在单机上很难模拟出高并发,而Locust这类工具在这方面的表现就要好的多。为啥?归根结底就是资源多使用效率,Locust采用了gevent开发框架,底层利用greenlet微线程机制,其中采用了epoll事件监听机制,监听什么?好比咱们利用多线程去模拟多用户,线程1执行到了服务器传输内容,而CPU也正在等待网络IO,而epoll机制就开始起做用了,它会将线程资源转向执行其余线程任务。而当耗时的网络IO或者磁盘IO结束时,greenlet会适时将CPU资源转回去继续执行线程1的任务。综上,单机并发,Locust就能够占据优点,而且Locust也能实现分布式测试,因此从经济性上考虑,它是省钱的。框架
平台性。不少事情若是平台级的产品都支持,那么推广或者优点是能够获得保证的。其余的云平台不是很清楚,我知道GCP平台是支持Locust的,也给出了一些解决方案。分布式
你们也能够扫描并关注以下公众号“TimTest”,会有更多性能测试相关内容分享。ide