使用说明

项目简介

k6 MCP 服务器是一个实现了 Model Context Protocol (MCP) 的后端应用,它扩展了 LLM (大型语言模型) 的能力,使其可以通过调用预定义的工具来执行 k6 负载测试。该服务器充当 LLM 和 k6 性能测试工具之间的桥梁,使得用户可以通过自然语言指令,让 LLM 驱动 k6 进行网站或应用的性能评估。

主要功能点

  • 集成 MCP 协议: 遵循 MCP 协议标准,易于与支持 MCP 的 LLM 客户端集成。
  • 执行 k6 测试: 提供工具接口,允许 LLM 客户端触发 k6 负载测试并获取测试结果。
  • 自定义测试参数: 支持通过工具参数自定义 k6 测试的持续时间和虚拟用户数量。
  • 实时输出: 返回 k6 测试执行的实时输出信息,方便用户监控测试进度。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/QAInsights/k6-mcp-server.git
    cd k6-mcp-server
  2. 安装依赖: 确保已安装 Python 3.12 或更高版本,以及 k6 负载测试工具。然后使用 'uv' 包管理器安装项目依赖:

    uv pip install -r requirements.txt
  3. 配置环境变量 (可选): 如果你的 k6 可执行文件不在系统 PATH 环境变量中,可以创建一个 '.env' 文件在项目根目录下,并指定 'K6_BIN' 环境变量为 k6 可执行文件的路径。例如:

    K6_BIN=/path/to/k6

服务器配置

为了让 MCP 客户端(如 Claude Desktop, Cursor, Windsurf 等)连接到 k6 MCP 服务器,你需要在客户端中配置 MCP 服务器信息。以下是一个示例配置,你需要根据你的实际环境进行调整:

{
  "mcpServers": {
    "k6": {
      "command": "/Users/naveenkumar/.local/bin/uv",
      "args": [
        "--directory",
        "/Users/naveenkumar/Gits/k6-mcp-server",
        "run",
        "k6_server.py"
      ]
    }
  }
}

配置参数说明:

  • '"k6"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
  • '"command"': 启动服务器的命令。这里指向 'uv' 包管理器,用于运行 Python 脚本。你需要将其替换为你实际的 'uv' 命令路径。
  • '"args"': 传递给 'command' 的参数列表。
    • '"--directory"': 指定服务器脚本所在的目录。你需要将其替换为你的 'k6-mcp-server' 仓库的本地路径。
    • '"run"': 'uv' 命令的子命令,用于运行 Python 脚本。
    • '"k6_server.py"': 服务器主脚本文件名。

请注意: '/Users/naveenkumar/.local/bin/uv' 和 '/Users/naveenkumar/Gits/k6-mcp-server' 均为示例路径,你需要根据你的实际安装路径和仓库位置进行修改。

基本使用方法

配置完成后,你可以在 MCP 客户端中通过自然语言指令指示 LLM 调用 k6 MCP 服务器的功能。

例如,你可以让 LLM 执行以下操作:

  • 运行名为 'hello.js' 的 k6 测试脚本 (假设 'hello.js' 位于服务器可访问的位置):

    run k6 test for hello.js

    这将调用 'execute_k6_test' 工具,使用默认的 30 秒持续时间和 10 个虚拟用户运行测试。

  • 运行 'mytest.js' 脚本,并自定义持续时间和虚拟用户数量:

    run k6 test mytest.js for 1 minute with 20 vus

    这将调用 'execute_k6_test_with_options' 工具,使用 1 分钟持续时间和 20 个虚拟用户运行测试。

LLM 会将指令转换为对 k6 MCP 服务器工具的调用,服务器执行 k6 测试并将结果返回给 LLM 客户端。

信息

分类

开发者工具