ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI测试实战:Claude接入蓝湖MCP,联动Pycharm实现自动化

AI测试实战:Claude接入蓝湖MCP,联动Pycharm实现自动化 1. 为什么我要把蓝湖需求直接喂给 Claude做测试的同学大概都有这种体验产品在蓝湖上更新了原型和需求文档测试同学要一条条对着看然后手写 pytest 用例写完还要跟开发确认字段、跟产品确认交互。一个中等规模的需求光是把需求翻译成可执行的测试代码半天就没了。更麻烦的是需求一改用例就得跟着改改完还得重新跑一遍回归。我最近在折腾的一条链路是让 Claude 通过 MCP 协议直接读取蓝湖的需求文档然后在 PyCharm 里生成符合项目结构的 pytest 用例最后用 run.py 触发执行。整条链路跑通之后从「需求更新」到「用例可跑」的时间从半天压缩到十几分钟剩下的时间可以拿去补边界用例和排查真实缺陷。这里的关键角色有三个。Claude 负责理解需求语义并生成代码MCP 负责把蓝湖的需求数据以工具调用的形式暴露给 ClaudePyCharm 则是我们日常写代码、跑测试的主战场。MCP 全称 Model Context Protocol你可以把它理解成「给大模型插外设的 USB 接口」——蓝湖 MCP 服务就是一个外设Claude 通过它拿到需求内容而不是靠你手动复制粘贴。这套方案适合谁适合已经在用 pytest 做自动化、项目结构相对固定、需求主要沉淀在蓝湖上的测试团队。如果你还在手工写用例、需求散落在各种文档里那先把项目结构和需求管理规范起来再上这套链路会更顺。需要说明的是Claude 本身要能稳定调用得有一个可用的 API 入口。我这边用的是 TaoToken 提供的接入方式它兼容 Anthropic 的接口协议配置起来比较直接后面会给出具体的配置片段。整条链路的核心不是某个工具多神奇而是把「需求读取—代码生成—执行验证」这三步串成一条可复现的流水线。2. 前置准备TaoToken 接入与蓝湖 MCP 服务在动手之前先把两个基础件准备好一个是 Claude 的 API 接入一个是蓝湖 MCP 服务。这两件事互相独立可以并行做。2.1 TaoToken 的 API Key 与接入地址TaoToken 的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基础地址是 https://taotoken.net/api 。注册登录之后进控制台创建 API Key这个 Key 后面要写进 Claude 的配置文件里。创建 Key 的入口在控制台的 API Keys 页面路径是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。建议给这个 Key 起个能认出来的名字比如claude-lanhu-test方便后面区分不同用途的 Key。Key 只在创建时完整显示一次复制下来存好。如果你对模型对话本身还不熟可以先到模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 试几条 prompt确认 Key 能正常调用再往下走。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面写了不同客户端的配置方式遇到字段不确定的时候可以对照。2.2 蓝湖 MCP 服务的启动蓝湖 MCP 服务是一个本地运行的 HTTP 服务默认监听 8000 端口暴露的 MCP 端点是http://127.0.0.1:8000/mcp。启动方式取决于你拿到的蓝湖 MCP 实现通常是一个 Python 或 Node 脚本跑起来之后保持这个终端窗口不要关。启动之后可以用浏览器或 curl 探一下服务是否活着curl -i http://127.0.0.1:8000/mcp如果返回 200 或 405方法不允许之类的响应说明服务在监听。返回连接拒绝就说明没起来回去看启动日志。注意蓝湖 MCP 服务需要能访问蓝湖的需求数据通常要配置蓝湖的访问凭证。这部分按你拿到的 MCP 实现文档来配不要把它暴露到公网本地 127.0.0.1 就够了。2.3 环境检查Node 与 Claude CodeClaude Code 依赖 Node.js老旧的 Node v6 是不行的建议用 LTS 版本当前是 v20.x 或 v22.x。装完之后重开一个 PowerShell 验证node -v npm -v两条命令都能输出版本号环境就算就绪。然后全局安装 Claude Codenpm install -g anthropic-ai/claude-code装完之后先别急着登录我们用配置文件的方式让它走 TaoToken 的接口避免卡在登录环节。3. 可复制配置Claude 接入 TaoToken 并挂载蓝湖 MCP这一节是整篇的核心配置写对了后面就是顺水推舟。配置分两块Claude 的 API 接入配置以及 MCP 服务的挂载。3.1 Claude 免登录配置文件在 PowerShell 里创建 Claude 的配置文件notepad $HOME\.claude.json写入下面这段把apiKey换成你在 TaoToken 控制台创建的那个 Key{ hasCompletedOnboarding: true, userId: anonymous, telemetryEnabled: false, apiBaseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥 }hasCompletedOnboarding设为 true 是为了跳过首次启动的引导流程telemetryEnabled关掉可以少一些无关的网络请求。保存之后在 PowerShell 里直接输入claude如果能进入对话界面并正常回复说明 API 接入已经通了。3.2 挂载蓝湖 MCP 服务Claude Code 支持通过命令行添加 MCP 服务。确认蓝湖 MCP 服务已经在 8000 端口跑着然后执行claude mcp add --transport http lanhu http://127.0.0.1:8000/mcp这条命令的意思是添加一个名为lanhu的 MCP 服务传输方式用 HTTP地址指向本地的 8000 端口。添加完之后可以用下面的命令确认claude mcp list列表里应该能看到lanhu这一项状态是已连接。如果显示连接失败先回去确认 MCP 服务是否还在运行再检查端口有没有被占用。3.3 Claude Desktop 的配置文件写法如果你同时用 Claude Desktop它的配置方式和 Claude Code 略有不同。找到claude_desktop_config.json没有就新建写入{ apiBaseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, mcpServers: { lanhu-mcp: { url: http://localhost:8000/mcp, name: lanhu-mcp } } }保存之后完全退出 Claude Desktop任务栏右键退出不是关窗口再重新打开配置才会生效。这样「TaoToken 接口 蓝湖 MCP」就是双生效的状态。3.4 PyCharm 侧的运行配置PyCharm 这边不需要装额外插件直接用内置终端就行。打开你的项目比如E:\测试文档\pythonProject在底部打开 Terminal注意要选 PowerShell 而不是 CMD因为 Claude Code 的交互在 PowerShell 下更稳。项目结构建议保持这样pythonProject/ ├── test_cases/ # 生成的测试用例 ├── common/ # 公共方法、fixture ├── reports/ # 测试报告输出 └── run.py # 执行入口run.py用 pytest 的 main 入口就行一个最小可用的版本import pytest if __name__ __main__: pytest.main([ test_cases, -v, --htmlreports/report.html, --self-contained-html ])这样 Claude 生成的用例只要放进test_cases/跑run.py就能执行并出报告。4. 验证请求从蓝湖需求到可执行用例配置就绪之后来跑一遍完整链路确认每一步都有预期结果。4.1 在 PyCharm 终端唤起 Claude在 PyCharm 的 PowerShell 终端里输入claude进入对话界面后先确认 MCP 服务挂载正常输入mcp如果能看到lanhu相关的工具列表说明 MCP 已经连上。这一步很关键看不到工具列表就说明前面的claude mcp add没生效回去检查。4.2 用 mcp 读取蓝湖需求把蓝湖的需求链接贴进去让 Claude 通过 MCP 读取mcp 读取这个蓝湖需求文档https://lanhuapp.com/xxx 基于需求生成完整的 Python pytest 自动化测试代码要求 1. 测试用例放在 E:\测试文档\pythonProject\test_cases 目录下 2. 公共方法放在 E:\测试文档\pythonProject\common 目录下 3. 代码可直接运行包含详细注释、异常处理、日志打印 4. 符合项目结构和 run.py 兼容Claude 会先调用蓝湖 MCP 的工具去拉取需求内容然后基于需求语义生成用例。生成过程中它会自己决定文件怎么拆分比如把登录相关的放一个文件、订单相关的放另一个文件。4.3 检查生成结果生成完之后去test_cases/目录看文件是否落地。一个典型的生成结果长这样# test_cases/test_login.py import pytest import logging from common.request_util import post logger logging.getLogger(__name__) class TestLogin: 登录模块测试用例对应蓝湖需求 REQ-1024 def test_login_success(self): 正常登录用户名密码正确应返回 token payload {username: test_user, password: Test123} resp post(/api/login, jsonpayload) assert resp.status_code 200 assert token in resp.json() logger.info(登录成功用例通过) def test_login_wrong_password(self): 异常登录密码错误应返回 401 payload {username: test_user, password: wrong} resp post(/api/login, jsonpayload) assert resp.status_code 401注意看注释里有没有带上需求编号这是判断 Claude 是否真的读到了蓝湖需求的一个信号。如果注释里全是泛泛的描述说明 MCP 可能没读到内容需要回去排查。4.4 触发执行并看报告用例检查没问题之后在 PyCharm 终端跑python run.pypytest 会收集test_cases/下的用例并执行结束后在reports/report.html生成报告。打开报告能看到每条用例的通过情况和耗时。如果某条用例失败先看是断言写错了还是接口本身有问题前者改用例后者提缺陷。到这里从蓝湖需求到用例执行的链路就跑通了。日常的工作流可以固定成启动蓝湖 MCP 服务单独窗口保持运行→ 打开 PyCharm 进入项目 → 终端启动 claude → 用 mcp 读需求 → 生成用例到 test_cases/ → 跑 run.py 出报告。5. 本篇常见错排查链路跑不通的时候问题通常集中在几个地方按下面的顺序排查效率最高。5.1 MCP 服务连不上现象是claude mcp list里lanhu显示未连接或者mcp看不到工具。先确认蓝湖 MCP 服务进程还在用curl -i http://127.0.0.1:8000/mcp探一下。如果服务在但 Claude 连不上检查claude mcp add时地址有没有写错http://127.0.0.1:8000/mcp和http://localhost:8000/mcp在某些环境下解析结果不同建议统一用 127.0.0.1。5.2 Claude 调用报鉴权错误现象是对话时返回 401 或鉴权失败。检查.claude.json里的apiKey是不是完整复制了有没有多余空格。apiBaseUrl必须是https://taotoken.net/api不要漏掉/api路径。如果 Key 是在别的项目里用过的确认它没有过期或被禁用。5.3 生成的用例跑不起来现象是python run.py报 import 错误或 fixture 找不到。多半是common/下的公共方法没生成全或者 import 路径和项目实际结构对不上。让 Claude 重新读一遍项目结构再生成prompt 里明确写出common目录下已有哪些文件。另外确认test_cases/和common/下都有__init__.py不然 pytest 的包发现会出问题。5.4 需求读到了但用例不贴需求现象是用例能跑但覆盖的字段和蓝湖上的需求对不上。这通常是 MCP 返回的需求内容不完整或者 Claude 只读了摘要没读详情。可以在 prompt 里要求它先列出从需求中提取的测试点确认无误再生成代码。如果蓝湖需求里有表格或图片确认 MCP 实现是否支持解析这些格式。5.5 PyCharm 终端里 claude 命令找不到现象是在 PyCharm 终端输入claude提示命令不存在。这是因为 PyCharm 终端的环境变量和系统 PowerShell 不一致。解决办法是在 PyCharm 设置里把 Terminal 的 shell path 指向 PowerShell 的完整路径或者直接用系统 PowerShell 跑 ClaudePyCharm 只用来编辑和跑测试。6. 把这条链路固定成日常流程跑通一次不难难的是每天都这么用。我的做法是把几个入口固定下来蓝湖 MCP 服务单独开一个 PowerShell 窗口常驻PyCharm 里项目固定用 PowerShell 终端Claude 的配置和 MCP 挂载写进一个初始化脚本换机器的时候跑一遍脚本就恢复环境。如果你还在用零散的 prompt 让 Claude 写用例建议把「读需求—生成—执行」这三步的 prompt 模板固化下来每次只换蓝湖链接和需求编号。长期做编码和 Agent 类任务的话可以了解一下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它在长会话和代码生成场景下的额度策略更适合这种持续性的工作流。接入过程中遇到配置问题对照接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 排查Key 的管理在 API Keys 页面 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。最后留一个我踩过的坑Claude 生成的用例第一次跑通常会有一两条因为环境差异失败别急着改 prompt先手动把失败原因定位清楚是接口地址不对还是测试数据没准备。把这类环境问题在common/里统一处理掉后面生成的用例通过率会明显提升。
返回列表