开源负载测试神器K6

简介:K6是一个强大的开源负载和性能测试工具,用于测试软件系统的性能和可靠性。K6的使用主要是编写测试脚本并运行,这些脚本主要用JavaScript编写,可以使用HTTP,WebSocket等多种协议进行测试。并且易于安装和运行,而且功能丰富,能够进行复杂的负载测试,测试脚本使用JavaScript编写,可以编写复杂的测试逻辑,模拟真实的用户行为,支持查看和修改源代码。

对比:

JMeter: K6更轻量,更易于自动化。而JMeter虽然功能强大,但是界面复杂,学习曲线较陡峭。
Locust: K6支持更多的协议,如gRPC和WebSocket。
Gatling: K6的测试脚本使用JavaScript编写,比Gatling的Scala更通用,更易学。

历史攻略:

容器化CICD+Locust性能压测

locust2.0+教程:011 - Locust Test Report

locust2.0+教程:012 - 压测websocket

locust2.0+教程:013 - 使用FastHttpUser提升压力机性能

locust2.0+教程:014 - 压测XML-RPC

locust2.0+教程:015 - 压测GRPC

sanic:启动和访问

github项目安装地址:

https://github.com/grafana/k6/releases

安装:

# Debian的Linux系统
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
echo "deb https://dl.bintray.com/loadimpact/deb stable main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install k6

# Mac
brew install k6

# Windows的 MSI 安装程序
https://github.com/grafana/k6/releases

案例源码sc.js

import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('http://test.k6.io');
  sleep(1);
}

运行:

# case-1
k6 run sc.js

# case-2
k6 run sc.js -u 100 -d 60s

参数详解:

-u, --vus:同时运行的虚拟用户(VUs)的数量。例如,k6 run --vus 10 script.js将会在执行script.js时使用10个VUs。

-d, --duration:测试的持续时间。例如,k6 run --duration 60s script.js将会运行测试60秒。

-s, --stages:阶段性的负载配置。这允许你在一个测试中改变虚拟用户的数量。例如,k6 run --stages 30s:20,1m:15,30s:10 script.js 将会在前30秒中使用20个VUs,在接下来的1分钟中使用15个VUs,然后在最后的30秒中使用10个VUs。

-i, --iterations:测试执行的总迭代次数。例如,k6 run --iterations 100 script.js将会运行测试直到达到100次迭代。

--paused:开始一个已经暂停的测试。这个选项允许你从K6的HTTP API开始测试。

--no-teardown:禁用teardown阶段。

--no-setup:禁用setup阶段。

-e, --env:设置环境变量。例如,k6 run -e MYVAR=myvalue script.js将会设置一个名为MYVAR的环境变量。

--http-debug:打印调试信息。例如,k6 run --http-debug=full script.js将会打印出所有HTTP请求和响应。

运行结果1:

**图片**

运行结果2:
在这里插入图片描述

被测服务运行情况:

图片

注意事项:

1、K6脚本的执行环境并不是完整的浏览器或Node.js环境,因此不能使用一些特定于这些环境的API。
2、应该尽可能地模拟真实的用户行为。这可能需要生成不同的用户凭证,使用适当的间隔和延迟等。
3、注意观察和解析测试结果。K6生成的详细报告可以帮助理解系统在不同负载下的行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值