大数跨境

k6-tester 让 k6 性能测试变简单

k6-tester 让 k6 性能测试变简单 dotNET跨平台
2025-12-17
5
导读:k6-tester 让性能测试更简单Intro在现代软件开发中,性能测试是保证应用质量的关键环节。k6[1

k6-tester 让性能测试更简单

Intro

在现代软件开发中,性能测试是保证应用质量的关键环节。k6 作为一款强大的开源负载测试工具,以其出色的性能和灵活性赢得了很多开发者的青睐,我们公司也有在使用 k6 来做一些性能测试。

然而,对于很多团队来说,编写 k6 测试脚本仍然存在一定的学习门槛:

  • • 需要手动编写测试脚本代码
  • • 配置参数繁琐(虚拟用户数、持续时间、阈值等)
  • • 缺少可视化的脚本构建器
  • • 难以快速分享和复用测试场景

基于这些痛点,开发了 k6-tester —— 一个轻量级的可视化 k6 测试工具。

What

k6-tester 是一个基于 ASP.NET Core 开发的 Web 应用,集成了可视化脚本构建器和轻量级单页面 UI。它让你能够在浏览器中设计、运行和分享 k6 负载测试,无需离开浏览器环境。

Visual Script Builder


Script Editor & Runner


核心特性:

  • • 可视化脚本构建器 - 通过表单配置 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. 1. 构建器模式 - 填写表单,描述目标 URL、HTTP 方法、VU 配置、请求头、标签、负载、阈值和可选的响应检查来配置脚本
  2. 2. 脚本模式 - 切换到编辑器,[微调(可选)]生成的测试/粘贴现有脚本/从零开始编写 k6 测试脚本
  3. 3. 运行器面板 - 本地 k6 进程的 stdout/stderr 实时流式显示在输出卡片中,支持全屏模式
  4. 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": "..."}'

More

性能测试不应该是一件复杂的事情。k6-tester 的目标是让每个开发者都能轻松上手 k6,快速验证应用性能。

如果这个项目对你有帮助,欢迎给项目一个 ⭐ Star,或者提出你的想法和建议或代码 PR ~

引用链接

 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/


【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 1322
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读26.0k
粉丝0
内容1.3k