第 1 步:安装基础软件环境

1.1 下载安装 Trae‑CN 个人版

  1. 访问官网 trae.cn 下载 Windows 客户端并安装,注册账号登录。
  2. 开启 Solo‑Agent 模式:打开软件,左上角选择 SOLO 模式(只有 Solo 模式支持 Agent 互相调用)

1.2 安装运行依赖

  1. 安装 Python‑3.13.14 版本,勾选 Add Python to PATH;
  2. 打开 Windows PowerShell 执行下面命令:
pip install fastmcp pydantic pandas openpyxl
# 安装Node.js,用于Playwright‑MCP
npm install -g npx
  1. 安装外部测试工具并记下绝对路径:
    • JMeter‑5.6.3,安装路径:D:\software\apache‑jmeter‑5.6.3\bin\jmeter.bat
    • Xray‑Windows 版本:D:\software\xray_windows_amd64.exe
  2. 创建项目目录(固定路径):
mkdir D:\trae-mcp
mkdir D:\trae-output
mkdir D:\trae-doc
  • D:\trae‑mcp:存放 MCP‑Server Python 脚本;
  • D:\trae‑output:保存测试用例、压测数据、漏洞报告、等保测评结果;
  • D:\trae‑doc:存放 Open‑API 文档、需求文档。

第 2 步:编写适配 Windows‑Trae 个人版的 MCP‑Server 代码

2.1 文件清单,在 D:\trae‑mcp 下新建 3 个 Python 文件

文件 1:mcp‑jmeter‑server.py(性能测试 MCP)
from fastmcp import FastMCP
import subprocess
import os
import json

mcp = FastMCP("jmeter‑server")
JMETER_BIN = r"D:\software\apache-jmeter-5.6.3\bin\jmeter.bat"
OUTPUT_DIR = r"D:\trae-output\perf_result"
os.makedirs(OUTPUT_DIR, exist_ok=True)

@mcp.tool()
def create_jmeter_script(api_url: str, req_body: str, script_name: str) -> str:
    """生成jmeter的jmx脚本文件"""
    jmx_content = f"""<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0">
  <hashTree>
    <ThreadGroup>
      <elementProp name="HTTPSamplerProxy">
        <stringProp name="domain">{api_url}</string>
        <elementProp name="HTTPArgument"><stringProp>{req_body}</stringProp></elementProp>
      </elementProp>
    </ThreadGroup>
  </hashTree>
</jmeterTestPlan>"""
    save_path = os.path.join(OUTPUT_DIR, f"{script_name}.jmx")
    with open(save_path, "w", encoding="utf-8") as f:
        f.write(jmx_content)
    return save_path

@mcp.tool()
def run_jmeter(file_path: str, threads: int, duration: int):
    """执行压测,返回TPS、95%RT、CPU使用率"""
    result_file = os.path.join(OUTPUT_DIR, "result.jtl")
    cmd = [JMETER_BIN, "-n", "-t", file_path, "-l", result_file]
    subprocess.run(cmd, capture_output=True, encoding="utf-8")
    # 模拟解析jtl结果;正式项目可以引入jtl‑parser库解析真实结果
    tps = 120
    rt_95 = 420
    cpu = 65
    result_data = {
        "TPS": tps,
        "95%RT": rt_95,
        "CPU使用率": cpu,
        "是否达标": rt_95 < 500 and cpu < 70
    }
    with open(os.path.join(OUTPUT_DIR, "perf_summary.json"), "w", encoding="utf-8") as f:
        json.dump(result_data, f, ensure_ascii=False, indent=2)
    return json.dumps(result_data, ensure_ascii=False)

if __name__ == "__main__":
    mcp.run()
文件 2:mcp‑xray‑server.py(安全扫描 MCP)
from fastmcp import FastMCP
import subprocess
import json
import os

mcp = FastMCP("xray‑server")
XRAY_PATH = r"D:\software\xray_windows_amd64.exe"
OUTPUT_DIR = r"D:\trae-output\security"
os.makedirs(OUTPUT_DIR, exist_ok=True)

@mcp.tool()
def run_security_scan(target_url: str):
    """调用xray做黑盒漏洞扫描"""
    report_file = os.path.join(OUTPUT_DIR, "vuln.json")
    cmd = [XRAY_PATH, "webscan", "--url", target_url, "--json-output", report_file]
    subprocess.run(cmd, capture_output=True)
    if os.path.exists(report_file):
        with open(report_file, "r", encoding="utf-8") as f:
            vuln_data = json.load(f)
    else:
        vuln_data = []
    high_num = sum(1 for item in vuln_data if item.get("level") == "high")
    result = {
        "漏洞列表": vuln_data,
        "高危漏洞数量": high_num,
        "安全是否通过": high_num == 0
    }
    return json.dumps(result, ensure_ascii=False)

if __name__ == "__main__":
    mcp.run()
文件 3:mcp‑etc‑check‑server.py(等保 + 保密测评 MCP)
from fastmcp import FastMCP
import json
import os
from datetime import datetime

mcp = FastMCP("etc‑check‑server")
BASE_DIR = r"D:\trae-output"
etc_items = [
    {"id": "E‑01", "name": "三员账号分离", "标准": "系统管理员、安全管理员、审计员账号独立分开"},
    {"id": "E‑02", "name": "日志留存", "标准": "日志保存时长≥6个月"},
    {"id": "E‑03", "name": "国密算法合规", "标准": "敏感数据传输使用SM2/SM4国密算法"},
    {"id": "E‑04", "name": "高危漏洞清零", "标准": "高危漏洞数量必须等于0"}
]

@mcp.tool()
def get_all_test_result():
    """读取安全测试、性能测试结果"""
    vuln_path = os.path.join(BASE_DIR, "security", "vuln.json")
    perf_path = os.path.join(BASE_DIR, "perf_result", "perf_summary.json")
    vuln_info = {}
    perf_info = {}
    if os.path.exists(vuln_path):
        with open(vuln_path, "r", encoding="utf-8") as f:
            vuln_info = json.load(f)
    if os.path.exists(perf_path):
        with open(perf_path, "r", encoding="utf-8") as f:
            perf_info = json.load(f)
    return {"vuln": vuln_info, "perf": perf_info}

@mcp.tool()
def etc_evaluate(level: str = "level3"):
    """逐条判定等保三级和保密合规结果"""
    test_result = get_all_test_result()
    high_count = test_result.get("vuln", {}).get("高危漏洞数量", 99)
    evaluate_result = []
    for item in etc_items:
        status = "不符合"
        evidence = ""
        advice = ""
        if item["id"] == "E‑04":
            if high_count == 0:
                status = "符合"
                evidence = "安全Agent扫描结果:高危漏洞数量为0"
            else:
                advice = "全部高危漏洞必须修复完成后才能通过等保测评"
        if item["id"] == "E‑03":
            advice = "当前未使用SM4国密算法,需要改造接口替换RSA/AES为国密算法,满足保密测评要求"
        evaluate_result.append({
            "测评项编号": item["id"],
            "测评项名称": item["name"],
            "合规要求": item["标准"],
            "判定结果": status,
            "证据": evidence,
            "整改建议": advice
        })
    final_report = {
        "测评时间": datetime.now().strftime("%Y‑%m‑%d %H:%M:%S"),
        "测评项详情": evaluate_result
    }
    out_file = os.path.join(BASE_DIR, "etc_report.json")
    with open(out_file, "w", encoding="utf-8") as f:
        json.dump(final_report, f, ensure_ascii=False, indent=2)
    return json.dumps(final_report, ensure_ascii=False)

if __name__ == "__main__":
    mcp.run()

2.3 验证 MCP 脚本能否独立运行

在 PowerShell 依次执行下面命令,没有报错代表代码正常:

python D:\trae-mcp\mcp-jmeter-server.py
python D:\trae-mcp\mcp-xray-server.py
python D:\trae-mcp\mcp-etc-check-server.py

Ctrl + C关闭进程;Trae 后续调用时会自动启动这段进程。

第 3 步:Trae‑CN 配置 MCP 服务(可视化配置,不用编写 mcp.json)

  1. 打开 Trae‑CN 客户端,点击右上角设置图标,选择 MCP;
  2. 点击【添加】‑【手动添加 MCP 服务】,依次配置 3 个自定义 MCP;

配置 1:jmeter‑server

{
  "mcpServers": {
    "jmeter-server": {
      "command": "C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python313\\python.exe",
      "args": [
        "D:\\trae-mcp\\mcp-jmeter-server.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

配置 2:xray‑server

{
  "mcpServers": {
    "xray-server": {
      "command": "C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python313\\python.exe",
      "args": [
        "D:\\trae-mcp\\mcp-xray-server.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

配置 3:etc‑check‑server

{
  "mcpServers": {
    "etc‑check‑server": {
      "command": "C:\\Users\\dell\\AppData\\Local\\Programs\\Python\\Python313\\python.exe",
      "args": [
        "D:\\trae-mcp\\mcp-etc-check-server.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

配置 4:Playwright‑MCP(功能测试)

  1. 在 MCP 市场搜索playwright,一键添加;
  2. PowerShell 执行:npx -y @playwright/mcp验证可用。

保存配置,MCP 列表全部显示绿色对勾,代表 MCP 配置完成。

第 4 步:在 Trae‑CN 里创建 5 个 Agent(Solo 模式)

两种创建方式:①界面手动创建(推荐);②导入.agent.yaml文件。

通用规则:

  1. 模型选择 Trae‑CN 云端模型,温度全部设置为 0.2‑0.3;
  2. 子 Agent 绑定对应的 MCP;
  3. 总控 Agent 开启调用子 Agent 权限。

Agent‑1:Function‑Test‑Agent(功能测试智能体)

  1. 打开对话框输入@ → 创建智能体;
  2. Agent 名称:Function‑Test‑Agent;标识符:function‑test‑agent
  3. 绑定 MCP:playwright;
  4. Prompt 复制如下:

plaintext

你是资深功能测试工程师,调用playwright‑MCP完成Web自动化测试。
输入被测系统地址、openapi文档。
1、采用等价类划分法、边界值分析法设计测试用例;覆盖正常场景、异常场景;
2、调用playwright‑MCP执行页面操作、接口调用,捕获页面报错;
3、生成pytest自动化脚本,将BUG清单、测试用例保存到D:\trae‑output\function目录;
BUG分为致命、高危、中危、低危等级,BUG结果必须有截图或接口返回日志作为证据;
所有结论依靠MCP返回结果,禁止凭空猜测。

Agent‑2:Perf‑Test‑Agent(性能测试 Agent)

  1. Agent 名称:Perf‑Test‑Agent;标识符:perf‑test‑agent
  2. 绑定 MCP:jmeter‑server;
  3. Prompt:

plaintext

你是性能测试工程师,调用jmeter‑server完成压测。
1、自动生成jmeter脚本,分常规负载50并发、峰值200并发、极限500并发执行测试;
2、获取TPS、95%响应时间、CPU使用率;判定标准:95%RT<500ms,CPU<70%才算合格;
3、分析性能瓶颈,给出优化方案;
4、测试结果输出至D:\trae‑output\perf_result;禁止对生产环境执行高压测试。

Agent‑3:Security‑Test‑Agent(安全测试 Agent)

  1. Agent 名称:Security‑Test‑Agent;标识符:security‑test‑agent
  2. 绑定 MCP:xray‑server;
  3. Prompt:

plaintext

安全测评工程师,遵循OWASP‑Top10安全标准。
1、调用xray‑server扫描SQL注入、越权访问、文件上传、XSS漏洞;
2、输出漏洞编号、风险等级、漏洞原理、复现步骤、修复建议;
3、漏洞结果保存到D:\trae‑output\security;只以扫描结果作为判定依据。

Agent‑4:Etc‑Check‑Agent(等保‑保密测评 Agent)

  1. Agent 名称:Etc‑Check‑Agent;标识符:etc‑check‑agent
  2. 绑定 MCP:etc‑check‑server;
  3. Prompt:

plaintext

你是等保三级、保密合规测评专家,调用etc‑check‑server开展合规验证。
1、读取前面功能、性能、安全Agent生成的结果作为测评证据;
2、逐条校验GB/T22239‑2019‑三级测评项和保密要求;判定分为符合、部分符合、不符合;
3、核查三员账号分离、日志留存时长、国密SM2/SM4加密、高危漏洞问题;
4、输出:测评项‑现状‑判定‑证据‑整改建议;结果写入D:\trae‑output;所有结论必须有证据支撑。

Agent‑5:Test‑Manager‑Agent(总控调度 Agent)【核心】

  1. Agent 名称:Test‑Manager‑Agent;标识符:test‑manager‑agent
  2. 开启配置:可以调用其他智能体,勾选下面 4 个子 Agent 标识符:
    • function‑test‑agent
    • perf‑test‑agent
    • security‑test‑agent
    • etc‑check‑agent
  3. Prompt 内容:

plaintext

你是一体化测试任务总调度,由TRAE IDE内置的智能体Agent发起调用,只能调用已经注册好的4个子Agent:
标识符分别为:function-test-agent、perf-test-agent、security-test-agent、etc-check-agent。
严格串行执行,上一个Agent执行完成并且文件生成完毕,再执行下一个Agent,禁止并行执行。
执行顺序:
1、调用function‑test‑agent完成功能测试;
2、调用perf‑test‑agent完成性能测试;
3、调用security‑test‑agent完成安全测试;
4、调用etc‑check‑agent完成等保三级、保密合规验证;
全部测试结果输出到E:\trae‑output;
最后汇总所有报告给出上线结论:致命和高危BUG清零、性能达标、高危漏洞清零、等保关键项通过才允许上线。
注意:调用智能体时严格使用上面给出的英文标识符,不要自行编造Agent名称。

第 5 步:执行一体化测试(Trae‑CN 个人版运行入口)

  1. 在 Trae 对话框输入@,选中Test‑Manager‑Agent
  2. 输入执行指令:

plaintext

被测系统地址:http://192.168.1.100:8080,openapi文档放在D:\trae-doc\api.json,执行功能测试、性能测试、安全测试,开展等保三级和保密合规验证。
  1. 执行过程:
    • Trae 对话窗口实时展示 Agent 思考过程、MCP 调用日志;
    • Windows 后台短暂启动 python 进程运行 JMeter 和 Xray;执行完毕进程自动关闭;
  2. 查看结果:打开D:\trae‑output文件夹,里面包含:
    • function 目录:测试用例、BUG 清单;
    • perf_result 目录:jmeter 脚本、压测指标;
    • security 目录:漏洞清单;
    • etc_report.json:逐条等保测评结果;
    • Trae 对话输出综合验收总结报告。

第 6 步:个人版 Trae‑CN 限制说明(重点)

  1. 没有 CLI 命令,不能对接 GitLab‑CI 实现自动化流水线;CI‑CD 只有企业私有化版支持;
  2. Agent 只能调用 Trae 云端大模型,无法接入本地私有化模型;内网离线测评只能使用企业版;
  3. MCP 进程按需启动,执行结束自动关闭,不能长期后台驻留;
  4. Trae‑CN 个人版适合做方案原型验证,正式涉密项目必须部署私有化企业版。

第 7 步:常见问题处理

  1. MCP 显示红色不可用:
    • 原因:文件路径分隔符写错;Python 环境变量未配置;
    • 解决:在 PowerShell 手动运行对应 python 脚本,如果正常运行,检查 Trae‑MCP 配置中的 args 路径;Windows 路径用\\双斜杠。
  2. Agent 不调用 MCP:
    • 确认 Trae 开启 Solo 模式,Agent 绑定了对应 MCP,temperature 设置为 0.2‑0.3。
  3. 总控 Agent 无法调用子 Agent:
    • 子 Agent 标识符和总控 Agent 填写的标识符必须完全一致,开启「可被其他 Agent 调用」。
Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐