我为何选择Locust性能测试工具

         最近一直在GCP平台上作一些性能测试任务。也一直在思考,到底应该使用什么样的压测工具才是适合的,毕竟“工欲善其事,必先利其器”。web


        原本在性能测试中使用的工具是JMeter,JMeter是一款免费的利用pure Java编写的压测工具,它自己功能和周边扩展仍是比较强大的。在免费软件领域使用的范围很广,包括扩展插件等,整个生态仍是比较好的。可是仍是那句话,适合本身的才是最好的。因为是在GCP上测试,而测试环境(包括测试机器)也必须搭建在此云平台上,那么有个问题是,稳定性和费用问题。至少对于我来讲是这样。好比我申请了一个16GB的VM,可是最终发现单台JMeter slave 节点能模拟的用户数仍是不能另人满意。并且偶尔也有稳定性问题,如某个节点会有不规律的JMeter相关进程异常退出问题。还有一个问题,就是JMeter在真正进行高并发性能测试时,是很吃内存的。这就又涉及到了费用问题,不少时候这也是要考虑的因素之一。
    结合实际的须要,最后评估发现工具Locust更适合项目的性能测试须要。主要基于如下几点:编程

  • 资源(如内存)占用少。这个是Locust比较显著的优点。并发

  • "Test as code", 针对这个特性,Locust是可使用Python进行场景模拟的,因此在脚本实现上比较灵活。可是反过来讲,使用Locust要有必定的Python编程基础。app

  • 云平台集成分布式测试。若是后期须要把本地(或项目环境)的分布式测试环境搭建在云平台的分布式测试上,那么就须要考虑一个通用性的问题了,以下图,利用GCP平台,结合K8S能够像搭建一个产品框架同样搭建一个性能测试平台。GCP官方对此是支持的。框架


Screen Shot 2020-09-28 at 21.56.54.png

       后期也会分享在使用中遇到的问题和解决方式。

     注解:须要说明的几点:socket

  • 若是项目安排比较紧急,可能对新工具的引入不利。分布式

  • 若是不了解Python编程的基础等,可能会有更多的学习成本,须要考量。ide

  • 若是项目使用的协议非HTTP,那么能够暂时先不要考虑Locust的了。好比H5页面(web socket)协议等。高并发


 你们也能够扫描并关注以下公众号“TimTest”,会有更多性能测试相关内容分享。 qrcode_for_gh_39009e949117_258-1.jpg
相关文章
相关标签/搜索