AI测试 AI 赋能测试实践 09:MCP 来了,测试人员怎么接?三个趁手的工具 + 50 行搓一个自己的测试 Server

EternalRights · 2026年05月11日 · 664 次阅读

前言

        2024 年底 Anthropic 发布了 MCP 规范,这个词在 2025 年逐渐火了起来。但笔者看了一圈市面上的文章,要么在讲"什么是 MCP"这种概念科普,要么是"5 分钟搭建 MCP Server"的通用教程。面向测试人员、告诉你"这东西能帮我解决什么测试问题"的文章,少之又少。

        笔者在日常测试工作中一直在琢磨:MCP 能不能直接拿来提升测试效率?于是花了些时间研究,找到了几个现成的工具,也自己动手搭了一个。这里把学习成果分享出来,供大家参考。

        这篇不打算讲概念,直接上干货:三个现成的 MCP 工具,配置完就能用;再带你用 Python 搭一个自己的测试 MCP Server 框架;最后把 Skill 跟 MCP 的关系说清楚。


三个现成的测试 MCP 工具

Playwright MCP——微软官方,测 UI 的

        微软出的 MCP Server,让你用自然语言操控浏览器。笔者体验下来,最亮眼的是三个 Agent:

        Planner Agent:自动探索你的应用,输出测试计划(Markdown 格式),省去了人工梳理测试场景的步骤。

        Generator Agent:把测试计划转成可执行的 Playwright 测试代码,从计划到脚本一步到位。

        Healer Agent:测试挂了自动修,定位器更新、等待调整都不需要你手动改。这个功能笔者觉得最实用,写过 UI 自动化的人都知道,定位器动不动就失效,改到头疼。

配置方式(三种任选):

  • VS Code:settings.json 加一行
  • Cursor:Settings → MCP → Add
  • Claude Code:claude mcp add playwright npx @playwright/mcp@latest

api-tester-mcp——专为 QA 设计的接口测试工具

        PyPI 上的包,6.9K 下载量。从 Swagger 到测试报告,全自动。这个工具封装了 10 个工具,形成了一条完整的工作流:

ingest_spec(加载 API 文档)
  → set_env_vars(配置认证)
  → generate_scenarios(生成场景)
  → generate_test_cases(生成代码)
  → run_api_tests(执行测试)
  → run_load_tests(还能跑负载)

        配置方式很简单,在 MCP 配置文件中加上:

{
  "mcpServers": {
    "api-tester": {
      "command": "npx",
      "args": ["@kirti676/api-tester-mcp@latest"]
    }
  }
}

        笔者拿 Petstore 的 Swagger 文档试了一下,从加载文档到生成 HTML 测试报告,全程没写一行代码。接口测试用这个确实省事。

mcp-swagger-server——让你的 API 文档"活"过来

        一行命令把 OpenAPI/Swagger 文档变成 AI 可直接调用的工具:

mcp-swagger-server --openapi https://api.example.com/openapi.json

        这个工具有个有意思的用法,可以用来测试你的 API 文档质量。因为很多文档结构有问题,一转换就暴露了。笔者之前遇到过一个项目,Swagger 文档看着挺规范,结果一跑 mcp-swagger-server,直接报了三个 schema 错误。所以它不光能让 AI 调用你的 API,还能顺便帮你检查文档质量。

三个工具对比

工具 适合场景 安装复杂度 关键亮点
Playwright MCP UI 自动化 ★☆☆☆☆ Healer 自动修测试
api-tester-mcp 接口测试 ★☆☆☆☆ Swagger→报告全自动
mcp-swagger-server API 文档活用 ★☆☆☆☆ 一行命令

50 行搭一个自己的测试 MCP Server

自己动手搭一个,有三个原因

        现成的工具固然好,但总有场景需要定制。一是你的公司用内部测试平台,没有公开 API;二是你想把一些运维脚本、数据查询封装成 AI 能调用的工具;三是你想搞清楚 MCP 到底是怎么工作的。笔者自己搭了一个之后,才真正理解了 MCP 的运行机制,这个认知上的收获比工具本身更有价值。

选一个测试场景

        场景:让 AI 帮你查当前迭代的测试统计数据。

        输入:自然语言"当前迭代的测试情况怎么样?"

        输出:AI 自动调用 MCP 工具查询数据并返回结果。

        这个场景很常见,每天站会前都要查测试状态,手动查费时费力,交给 AI 一句话搞定。

代码实现

        下面是一个可运行的 MCP Server 框架。函数体里是示例数据,你需要替换成自己实际的查询逻辑(比如对接 JIRA API、禅道 API、内部测试平台等),但框架本身是完整的,跑起来就能被 AI 调用。

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Test Stats")

@mcp.tool()
def get_test_stats(sprint: str) -> str:
    """获取指定迭代的测试统计数据,包括用例执行情况和缺陷分布"""
    # 替换成你实际的查询逻辑,比如调用 JIRA/禅道 API
    import requests
    # resp = requests.get(f"https://your-jira/api/sprint/{sprint}/stats",
    #                     headers={"Authorization": "Bearer xxx"})
    # data = resp.json()
    # 下面是示例数据,实际使用时替换为上面的查询结果
    return f"{sprint} 迭代:用例通过 156 个,失败 8 个,关闭率 95.1%"

@mcp.tool()
def get_recent_failures(days: int = 7) -> str:
    """获取最近N天测试失败的用例列表及失败原因"""
    # 同理,替换成你实际的查询逻辑
    return f"最近 {days} 天共有 15 个用例失败,其中 12 个已确认修复,3 个待排查"

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

        几个关键点说一下:

        FastMCP 是 Python SDK 的简易封装,几行就能起一个 Server,不需要从零搭建通信层。

        @mcp.tool() 装饰器把函数变成 AI 可调用的工具,不需要额外写接口定义。

        函数的参数和 docstring 会被自动解析为 AI 理解的工具描述,所以 docstring 一定要写清楚,AI 靠它来决定什么时候调用这个工具。

配置到 Claude Code

{
  "mcpServers": {
    "test-stats": {
      "command": "python",
      "args": ["path/to/your/server.py"]
    }
  }
}

        配置完直接问 AI:"当前迭代测试情况怎么样?"AI 会自动调用 get_test_stats 工具,不需要你写任何胶水代码。笔者第一次跑通的时候,确实有种"原来就这么简单"的感觉。

更多玩法思路

        搭通一个之后,能封装的东西就多了:

        封装性能测试结果查询:get_perf_report(test_id),跑完压测不用再去 Grafana 翻面板,直接问 AI。

        封装 CI 流水线状态:check_pipeline_status(pipeline_name),不用切到 Jenkins/GitLab CI 看构建状态了。

        封装测试环境状态:get_env_status(env_name),环境挂了 AI 直接告诉你,不用等开发反馈。


Skill 跟 MCP 的区别

        很多人问 MCP 和 Skill 的区别,这里统一说明。

        一个类比:MCP 是螺丝刀,Skill 是安装说明书。螺丝刀管"能不能做",安装说明书管"怎么做"。

MCP Skill
本质 通信协议 行为指令
定义 工具的输入/输出格式 怎么做任务的步骤
例子 api-tester-mcp 暴露了 10 个工具 "先读 Swagger,再生成代码,再执行"
复用范围 任何 MCP 客户端 Claude Code / Cursor 等特定工具

        MCP 给 AI 提供了"能做什么",Skill 告诉 AI"应该怎么做"。两者结合才是完整的测试自动化方案。

        至于怎么用 Skill 把测试流程标准化、怎么保证 Skill 的质量,那是下一期的内容了。


后记

        这篇给了三个现成的 MCP 工具,Playwright MCP 测 UI、api-tester-mcp 测接口、mcp-swagger-server 活用 API 文档,配置完就能上手。然后带各位了解了如何搭建 MCP Server 的框架,代码量不大,核心是搞清楚 @mcp.tool() 装饰器和 docstring 的作用,替换成你自己的查询逻辑就能用。笔者希望各位读完之后能真正动手跑一下,光看不练等于没看。最后把 MCP 和 Skill 的区别理清了,MCP 是工具协议,Skill 是行为指令,别再混为一谈。

        下期预告:Skill 深度实战——如何把一套测试流程封装成可复用的 Skill。

        君子性非异也,善假于物也。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册