Locust工具在市场上不如Loadrunner / JMeter流行,使用的范围也没有那么广,但不可否认其是一款很不错的工具。我个人觉得Locust使用不是那么广泛,主要是因为一下方式:

  • Locust需要一定的Python编程基础,有一定的学习成本。

  • Locust既有的协议支持有,主要有HTTP等。很多协议只要Python支持即可。

  • UI操作界面,很多时候,用户在使用的时候,会考虑上手容易度,Loadrunner/JMeter都有很强的用户交互设计,在客户端强大的功能下面,用户不需要太强的编程能力,也可以完成场景的模拟和脚本的编写。

但是未来压测工具的趋势,一定是可编程性占据主流。主要原因主要如下:

  • 可编程性可以和开发团队有更好的贴合度,很多传统压测工具不好/不能模拟的场景,都可以通过编码的方式去实现,让测试更加灵活,覆盖度有保证。并且开发人员也可以去实现压测场景脚本。而性能测试人员可以更加注重去分析问题

  • 省钱。这个理由会让人无法抗拒。不过可能有人要反驳了,JMeter等开源工具不也是免费的吗?是的,软件本身是免费的,但是使用起来不一定是免费的。现在比较流行云平台,所有的环境(开发/测试/UAT/线上)基本都部署在上面。而云平台的一个特性就是按需申请和按需收费。那么在使用诸如Loadrunner/JMeter 这类采用进程和线程的工具,是比较耗费内存的。这也就决定了,在单机上很难模拟出高并发,而Locust这类工具在这方面的表现就要好的多。为啥?归根结底就是资源多使用效率,Locust采用了gevent开发框架,底层利用greenlet微线程机制,其中采用了epoll事件监听机制,监听什么?比如我们利用多线程去模拟多用户,线程1执行到了服务器传输内容,而CPU也正在等待网络IO,而epoll机制就开始起作用了,它会将线程资源转向执行其他线程任务。而当耗时的网络IO或者磁盘IO结束时,greenlet会适时将CPU资源转回去继续执行线程1的任务。综上,单机并发,Locust就可以占据优势,并且Locust也能实现分布式测试,所以从经济性上考虑,它是省钱的。

  • 平台性。很多事情如果平台级的产品都支持,那么推广或者优势是可以得到保证的。其他的云平台不是很清楚,我知道GCP平台是支持Locust的,也给出了一些解决方案。

转自公众号【TimTest】,https://mp.weixin.qq.com/s?__biz=MzI2OTYwMDc0MQ==&mid=2247483730&idx=1&sn=b42a5ce9d92fab040c5d83da7d021195&chksm=eadc93d8ddab1acec4c53a41a6a7b4b003bbb13b7aff1e85c179a08f321015b65a1ae2b5eb0c&token=2021082705&lang=zh_CN#rd

最新文章

  1. js小练习去掉指定的字符组成一句话输出
  2. <s:property value=""/> 怎么截取返回值的固定长度的字符串
  3. PHP5.6.15连接Sql Server 2008配置方案
  4. 真正解决问题:maven eclipse tomcat java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  5. python curses使用
  6. Linux C程序内存空间
  7. [Outlook]设置邮件自动接收时间
  8. LeetCode:Climbing Stairs(编程之美2.9-斐波那契数列)
  9. javaweb学习总结二十一(servlet开发入门、servlet生命周期以及调用过程)
  10. 3月3日(2) Search Insert Position
  11. JTA
  12. 开源代码——Crouton
  13. Hadoop之HDFS原理及文件上传下载源码分析(下)
  14. git的使用[转]
  15. vue 使用axios 跨域请求数据的问题
  16. php解析ini,conf文件
  17. 由浅入深的讲述Get和Post的区别
  18. Mysql字符串切分
  19. create react app遇到的问题
  20. <Android 开源库> PhotoPicker 从头到脚

热门文章

  1. 从《三体》到“中美科技战”,3分钟理解“网络”D丝为什么要迎娶“算力”白富美
  2. yield 的使用
  3. Spring Security 入门学习--数据库认证和授权
  4. 从零开始的SpringBoot项目 ( 三 ) 项目打包( war包篇 )
  5. SEO外包好还是自己组建团队
  6. SpringBoot事务使用和回滚
  7. RTS寻路算法
  8. 发送信息到邮箱的第三方扩展库PHPMailer使用方法
  9. jinja2快速实现自定义的robotframework的测试报告
  10. String.format与搭配转化符的使用