zoukankan      html  css  js  c++  java
  • 比较k6和JMeter的负载测试(转)

    特征JMETERK6
    基于 Java Go
    脚本语言 非常有限: Java (Groovy, Beanshell, etc) Javascript
    协议 通过插件支持大多数协议(本地支持HTTP/1.1、SOAP、FTP、JDBC、LDAP、MOM与JMS、SMTP、POP3、IMAP、外壳脚本、TCP、Java对象) 支持较少的现代协议(HTTP/1.1, HTTP/2, WebSockets, gRPC)
    外部依赖项 Java
    资源利用率 差劲; 一个负载生成器可以模拟数千个虚拟用户 非常好 ; 一个负载生成器可以模拟成千上万的虚拟用户
    内存管理 必须设置JVM堆内存 本机使用负载生成器内存
    线程模型 1个线程1个虚拟用户:性能较慢,资源成本较高 一个Goroutine1个虚拟用户:性能较快,资源成本更低
    易于编写脚本 基于图形用户界面,带代码块 基于代码,VS Code插件
    测试级阈值 不支持,仅个人请求 支持
    脚本格式 XML javascript
    易于协作 难以同时工作,易于测试员使用,需要GUI应用程序进行编辑 易于开发者使用,易于版本; Javascript格式促进协作
    维护 详细的脚本,XML格式难以阅读 更简洁的脚本; JavaScript易于阅读
    社区 自1998年以来,许多第三方教程,广泛的文档,没有中央社区 自2017年以来,广泛的文档,更少的第三方教程,有官方社区
    插件支持 需要许多功能的插件,有很多可用的插件 本机支持大多数功能,可提供插件支持,并且稀疏性
    本机分布式负载生成 否(仅限高级会员)
    预先生成的报告 默认和自定义HTML报告,通过监听器记录 没有内置的预生成报告,通过第三方仪表板与分析工具集成
    网站 jmeter.apache.org k6.io
    源代码 JMeter k6

    结论

    尝试选择负载测试工具时,最好的建议是与最有前途的候选人进行概念验证,在实际测试周期中使用时,某些功能或错误可能或多或少重要,不要把两个不同工具的负载测试结果看得太重,每个工具记录的指标都不同,并且使用同一工具将结果与以前的结果进行比较更有意义,切换工具时,每次都要在新工具中重新建立基线。

    以下摘要可以帮助您在JMeter和k6之间进行选择。

    两个工具都擅长:

    • 通过编写复杂的用户流脚本来在应用程序服务器上生成协议级负载、
    • 使用动态思考时间,测试数据生成和可重用或可自定义工作负载模型的逼真的脚本、
    • 功能文档和发布的一致性。

    两个工具都不支持:

    • 生成浏览器级别的负载并与DOM元素进行交互,尤其是对于单页应用程序、
    • 详细结果分析(JMeter有预先生成HTML报告和侦听器,但还差得远),用户应该能够将结果与数据库和数据可视化软件集成在一起。

    JMeter最适合:

    • 传统模式的测试团队、
    • 偏爱基于GUI的测试工具的开发者,这些工具具有大量的第三方教程和广泛的协议支持、
    • 以前是LoadRunner和NeoLoad等商业工具的用户。

    k6最适合:

    • 协作和跨职能的工程团队,其中测试涉及多个角色、
    • 偏爱简单,轻量但功能齐全的负载测试工具的开发者、
    • 希望将测试集成到现有开发工作流和CI/CD管道中的团队。

    负载测试脚本工具不是负载测试成功的最重要考虑因素,了解测试的原因,测试要求,理解和传达结果更为重要,使用正确的工具有助于顺利解决这些问题,没有“最佳”工具,只有适合项目和需求的工具。

    原文:https://blog.csdn.net/keny88888/article/details/118727931

  • 相关阅读:
    简单实现vue列表点击某个高亮显示
    vue中子组件直接修改父组件prop属性bug
    Java基础——关于接口和抽象类的几道练习题
    Eclipse中导入外部jar包步骤
    Java基础——关于jar包的知识
    Java基础——关于访问权限的一道例题
    Java基础——抽象类和接口
    Java基础——多态
    Java基础——继承
    三个案例,解读静态代码块和构造代码块
  • 原文地址:https://www.cnblogs.com/kerwincui/p/15549797.html
Copyright © 2011-2022 走看看