k6-tester 让性能测试更简单
Intro
在现代软件开发中,性能测试是保证应用质量的关键环节。k6[1]作为一款强大的开源负载测试工具,以其出色的性能和灵活性赢得了很多开发者的青睐,我们公司也有在使用 k6 来做一些性能测试。
然而,对于很多团队来说,编写 k6 测试脚本仍然存在一定的学习门槛:
• 需要手动编写测试脚本代码
• 配置参数繁琐(虚拟用户数、持续时间、阈值等)
• 缺少可视化的脚本构建器
• 难以快速分享和复用测试场景
基于这些痛点,开发了k6-tester—— 一个轻量级的可视化 k6 测试工具。
What
k6-tester是一个基于 ASP.NET Core 开发的 Web 应用,集成了可视化脚本构建器和轻量级单页面 UI。它让你能够在浏览器中设计、运行和分享 k6 负载测试,无需离开浏览器环境。
核心特性:
•可视化脚本构建器- 通过表单配置 VU 配置文件(恒定或阶梯式)、HTTP 选项、请求头、负载、阈值和标签,实时预览生成的脚本
•即用型输出- 一键复制或下载生成的脚本,查看对应的
k6 run命令•一键执行- 直接从 UI 触发本地 k6 二进制文件,将 stdout/stderr 实时流式传输到浏览器
•Minimal API Endpoints-
/api/k6/script返回生成的脚本 JSON,/api/k6/run流式传输实时执行输出•🐳 docker 或二进制部署- 可作为预装 k6 的容器镜像部署,或作为独立 ASP.NET Core 应用运行
它是一个基于 ASP.NET Core 的 Web 项目,前端是一个静态的 html 调用后端的 Minimal API,而后端的 API 一来可以根据配置生成 k6 测试脚本,二来可以执行 k6 测试脚本并实时返回对应的输出结果。
输出结果也可以切换 layout 为上下结构
或者也可以全屏显示测试脚本执行结果
Why
降低学习门槛
不是每个开发者都熟悉 k6 的 JavaScript API。通过可视化界面,新手可以快速上手,老手也能提高效率。
提高团队协作
生成的脚本可以通过 URL 分享,团队成员无需来回传递脚本文件,点击链接即可查看和执行相同的测试场景。
简化 CI/CD 集成
生成的脚本格式确定性强,可以直接签入版本控制系统,或在 UI 外复用。
快速验证和迭代
实时流式输出让你能够立即看到测试结果,无需切换终端窗口,加速测试验证循环。
如何使用?(How)
本地快速启动
前置要求
• .NET 10 SDK[2]
• k6 CLI[3](用于"Run with k6"功能)
步骤
# 1. 克隆仓库 git clone https://github.com/WeihanLi/k6-tester.git cd k6-tester # 2. 恢复依赖 dotnet restore k6-tester.slnx # 3. Release 模式构建 dotnet build k6-tester.slnx --configuration Release --no-restore # 4. 运行 Web 应用 dotnet run --project src/k6-tester/k6-tester.csproj打开浏览器访问http://localhost:5266,即可开始使用!
Docker 部署
如果你更喜欢容器化部署,我们提供了多架构镜像支持:
# 使用 Docker Hub 上的公开镜像 docker run --rm -p 8080:8080 weihanli/k6-tester:latest # 或本地构建 docker build -t k6-tester . docker run --rm -p 8080:8080 k6-tester使用流程
1.构建器模式- 填写表单,描述目标 URL、HTTP 方法、VU 配置、请求头、标签、负载、阈值和可选的响应检查来配置脚本
2.脚本模式- 切换到编辑器,[微调(可选)]生成的测试/粘贴现有脚本/从零开始编写 k6 测试脚本
3.运行器面板- 本地 k6 进程的 stdout/stderr 实时流式显示在输出卡片中,支持全屏模式
4.状态与分享- UI 将最后的脚本和布局偏好保存在
localStorage中,方便下次回看上次的结果,分享链接会直接加载脚本并切换到脚本模式
API Endpoints
对于自动化场景,你也可以直接调用 API:
# 生成脚本 curl -X POST http://localhost:5266/api/k6/script \ -H "Content-Type: application/json" \ -d '{"targetUrl": "https://example.com", "duration": "30s", "vus": 10}' # 运行测试(流式输出) curl -X POST http://localhost:5266/api/k6/run \ -H "Content-Type: application/json" \ -d '{"script": "..."}'项目链接
•GitHub 仓库: https://github.com/WeihanLi/k6-tester
•在线演示: https://k6-tester.weihanli.xyz 部署了一个简单的在线版本,欢迎体验
•Docker Hub: weihanli/k6-tester[4]
More
性能测试不应该是一件复杂的事情。k6-tester的目标是让每个开发者都能轻松上手 k6,快速验证应用性能。
如果这个项目对你有帮助,欢迎给项目一个 ⭐ Star,或者提出你的想法和建议或代码 PR ~
引用链接
[1]k6:https://k6.io[2].NET 10 SDK:https://dotnet.microsoft.com/download/dotnet/10.0[3]k6 CLI:https://k6.io/docs/get-started/installation/[4]weihanli/k6-tester:https://hub.docker.com/r/weihanli/k6-tester/tags