• home > tools > TestTools > k6 >

    JavaScript开源压测神器k6:轻松些压测的日子到了!

    Author:zhoulujun Date:

    为什么选择K6K6是一个grafana旗下强大的开源负载和性能测试工具,用于测试软件系统的性能和可靠性。关键是,可直接用JavaScript编写测试脚

    为什么选择K6

    K6是一个grafana旗下强大的开源负载和性能测试工具,用于测试软件系统的性能和可靠性。

    关键是,可直接用JavaScript编写测试脚本,可以使用HTTP,WebSocket等多种协议进行测试。

    k6 是用 Go 语言(grfana后台基本靠Go)编写的一种高性能的负载测试工具。官网:https://k6.io/

    因为 K6 是 Go 编写的,相对于 JAVA 编写的 JMeter 和Python编写的Locust,性能遥遥领先!K6 可以只用较少的资源就能达到指定数量的负载,资源利用是非常强的!

    图片名称

    而grfana拿手绝活就是数据可视化,k6有丰富的可视化方案!

    这样编写复杂的测试逻辑,模拟真实的用户行为,无需使用loadrunner 这种傻大粗了——关键是TMD贵呀,破解也老费劲!

    • JMeter/loadrunner(java): JMeter虽然功能强大,但是界面复杂,学习曲线较陡峭。

    • Locust(python): K6支持更多的协议,如gRPC和WebSocket。

    • Gatling(Scala): Scala这玩意,因为这玩意太小众,我压根不想理Spark,可以读一下:《从产品的角度看Scala如何从神坛掉落的?


    k6的使用

    安装k6

    docker直接安装就好

    docker pull loadimpact/k6

    linux 

    下载k6

    curl -L https://github.com/loadimpact/k6/releases/download/v<version>/k6_<version>_linux_amd64.tar.gz -o k6.tar.gz

    将解压后的 k6 可执行文件移动到 /usr/local/bin 目录下,然后验证安装成功与否即可

    k6使用

    编写测试脚本

    相比java,JS使用起来非常简单

    import http from 'k6/http';
    export let options = {
      vus: 100, // 指定要同时运行的虚拟用户数量
      duration: '10s', // 指定测试运行的总持续时间
    };
    // default 默认函数
    export default function () {
      // 标头
      let params = { headers: { 'Content-Type': 'application/json' } };
     
      var res=http.get("https://test.k6.io",params)
    }


    batch 批处理,可以用来做页面并发(批处理并不能保证执行顺序

    import http from 'k6/http';
    export let options = {
      vus: 1, 
      duration: '10s', 
    };
    export default function () {
      let get = {
        method: 'GET',
        url: 'https://host/get',
      };
      let get1 = {
        method: 'GET',
        url: 'https://host/get',
      };
      let post = {
        method: 'POST',
        url: 'https://host/post',
        body: {
          hello: 'world!',
        },
        params: {
          headers: { 'Content-Type': 'application/json' },
        },
      };
      let res = http.batch([req1, req2, req3]);
    }

    具体参看:https://grafana.com/docs/k6/latest/using-k6/

    压测

    进入脚本根目录,执行脚本

    k6 run test.js
    # 使用 docker 
    docker run -i loadimpact/k6 run - <test.js




    转载本站文章《JavaScript开源压测神器k6:轻松些压测的日子到了!》,
    请注明出处:https://www.zhoulujun.cn/html/tools/TestTools/k6/9210.html

    上一篇:第一页
    下一篇:最后一页