Token导航 LogoToken导航TokenDH.com
MCP Server Automation logo
开发工具未说明官方级别未说明来源级核验

MCP Server Automation

MCP Server

AutotestGen MCP是一个将Testiny中的手动测试用例转换为可执行的自动化测试的工具,支持通过Anthropic生成测试代码并运行于Appium/XCUITest(iOS)。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
自动化测试TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Arm63

提供方

Arm63

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

AutotestGen MCP——测试→ AI → 自动测试(MVP)

将手动测试用例从Testiny转换为可执行的自动化测试的最小管道,由Anthropic生成,可与Appium/XCUITest(iOS)一起运行。

流动

  • Testiny存储手动测试用例
  • API端点通过获取案例 TESTINY_* 信任状
  • 人类学(CLAUDE_*)从提示符生成测试代码
  • 脚本保存在 output/generated//...
  • 可选:立即运行(Appium/Pytest)

需求

  • Node.js 18+
  • Python 3.13+
  • Xcode+iOS真实设备配置(适用于Appium iOS)
  • Appium v2(我们通过以下方式使用本地、项目范围的安装 npx)

环境

创建 .env 与:

  • 睾丸

- TESTINY_API_URL (例如。, https://api.testiny.io/v1) - TESTINY_API_KEY - TESTINY_PROJECT_ID (可选但推荐)

  • Anthropic

- CLAUDE_API_KEY - CLAUDE_MODEL (可选,默认 claude-3-haiku-20240307)

  • 服务器

- PORT (可选,默认 3000)

安装并运行MCP服务器

npm install
npm run dev
# Server: http://localhost:3000 (health: GET /)

从Testiny生成测试

端点: GET /api/test-cases/:id/generate

查询参数:

  • target: pytest-appium-ios (默认)| appium-js
  • save: true|false (默认值 true)
  • run: true|false (默认值 false)
  • force:绕过标签检查(默认 false)
  • mock:绕过AI并返回一个简单的启发式测试(默认 false)
  • allowFallback:当AI积分较低时使用简单测试(默认 true)
  • raw:包括原始Testiny负载和调试(默认 false)

例子:

curl "http://localhost:3000/api/test-cases/TC-2/generate?target=pytest-appium-ios&save=true&run=false"

输出文件:

  • output/generated/pytest-appium-ios/test_TC__pytest_appium_ios.py

标签门:

  • 除非 force=true,案件必须包括以下内容之一: automation:requiredautomation:recommended.

iOS(Pytest+Apium+XCUITest)

Python deps(诗歌使用 pyproject.toml):

poetry env use 3.13
poetry install

项目范围的Appium v2和XCUITest驱动程序:

# Install XCUITest driver locally (stored under ./.appium)
APPIUM_HOME="$PWD/.appium" npx --yes appium driver install xcuitest

# Start Appium on /wd/hub (keep running)
APPIUM_HOME="$PWD/.appium" npx --yes appium --base-path /wd/hub

真实设备环境(示例):

  • APPIUM_URL (默认值 http://127.0.0.1:4723)
  • IOS_UDID (或 DEVICE_UDID)
  • IOS_DEVICE_NAME (或 DEVICE_NAME)
  • IOS_PLATFORM_VERSION (或 PLATFORM_VERSION)
  • 什么之中的一个: BUNDLE_ID (已安装的应用程序)或 APP (.app/.ipa的绝对路径)
  • 签名可选: TEAM_ID
  • 测试数据: TEST_EMAIL (可选)

运行生成的测试(示例):

APPIUM_URL="http://127.0.0.1:4723" \
IOS_UDID="" \
IOS_DEVICE_NAME="iPhone 12" \
IOS_PLATFORM_VERSION="18.0" \
BUNDLE_ID="com.example.app" \
TEAM_ID="" \
poetry run pytest -q "$(pwd)/output/generated/pytest-appium-ios/test_TC_2_pytest_appium_ios.py" -k test_tc_2 -s

笔记:

  • 测试使用 appium-python-client 5.x和 XCUITestOptions API
  • 功能包括首次安装WDA的有用标志: showXcodeLog, useNewWDA.

智能iOS助手(无需辅助功能ID)

手动QA步骤通常引用可见文本,而不是可访问性标识符。使用 src/utils/smart_ios.py 通过人类可读的标签对元素进行操作:

from src.utils.smart_ios import click_by_text, enter_text_by_label, wait_for_text

click_by_text(driver, "Sign In")
enter_text_by_label(driver, "Email or Phone Number", "qa@example.com")
wait_for_text(driver, "Password")

在幕后,助手使用iOS谓词和类链定位器、模糊匹配和空间启发式来查找标签附近的文本字段。

真实设备签名和稳定性环境(推荐)

提供这些环境变量以避免 xcodebuild 代码70和WDA问题:

  • TEAM_ID (或 XCODE_ORG_ID)
  • XCODE_SIGNING_ID (默认值 Apple Development)
  • UPDATED_WDA_BUNDLE_ID (例如。, com.company.WebDriverAgentRunner)

已启用附加功能: showXcodeLog=true, useNewWDA=true, waitForQuiescence=false,WDA启动重试。

Appium基础路径处理

测试在以下时间之间自动回退 APPIUM_URL 有和没有 /wd/hub 当服务器返回404“未知命令”时。您可以设置:

  • APPIUM_URL="http://127.0.0.1:4723" (无基本路径)
  • APPIUM_URL="http://127.0.0.1:4723/wd/hub" (带基础路径)

这是如何工作的(iOS真实设备)

  • 在/wd/hub上启动Appium v2(项目范围):
APPIUM_HOME="$PWD/.appium" npx --yes appium --base-path /wd/hub
  • 启动MCP服务器(在另一个终端中):
PORT=3001 npm run dev
  • 生成一个Testiny案例并将其保存为pytest-apium-ios(示例TC-4):
curl "http://localhost:3001/api/test-cases/TC-4/generate?target=pytest-appium-ios&save=true&run=false&force=true"
  • 在真实设备上运行生成的测试(替换为您的值):
PYTHONPATH="$(pwd)" \
APPIUM_URL="http://127.0.0.1:4723/wd/hub" \
IOS_UDID="00008101-001D35A23C0A001E" \
IOS_DEVICE_NAME="iPhone 12" \
IOS_PLATFORM_VERSION="18.5" \
APP="/absolute/path/to/YourApp.ipa" \
BUNDLE_ID="com.example.app" \
TEAM_ID="" \
UPDATED_WDA_BUNDLE_ID=".WebDriverAgentRunner" \
TEST_EMAIL="qa@example.com" \
poetry run pytest -q "$(pwd)/output/generated/pytest-appium-ios/test_TC_4_pytest_appium_ios.py" -k test_tc_4 -s

笔记:

  • 首次运行时使用APP安装.ipa;BUNDLE_ID附加到已安装的应用程序。
  • 签名上限从env中选取;测试使用XCUITestOptions和autoAcceptAlerts。
  • 帮助者来自 src/utils/smart_ios.py 启用健壮的基于文本的操作。

故障排除

  • ModuleNotFoundError: No module named 'appium' → run poetry install,然后使用以下命令运行测试 poetry run pytest ....
  • xcodebuild failed with code 70 → 确保真正的设备配置,有效 TEAM_ID,信任开发人员,正确的签名证书,设备解锁。
  • EADDRINUSE: 0.0.0.0:4723 → 另一个Appium正在运行;停止它或使用其他端口。
  • 未找到元素→ 使用健壮的iOS定位器(谓词/类链);确认应用程序中的可访问性标识符。

项目布局(关键部分)

  • src/server.ts:Express服务器,装载 /api
  • src/routes/test-cases.ts:生成端点、AI回退逻辑
  • src/services/testiny.service.ts:睾丸提取+步进提取
  • src/services/ai.service.ts:人工呼叫和代码提取
  • src/services/prompt.service.ts:按目标提示模板
  • src/services/runner.service.ts:保存文件,可选运行助手
  • output/generated/:生成的测试

安全和成本

  • 人为使用需要资金账户/信用。
  • 保留API密钥 .env;不要承诺。

目录标签

目录标签

自动化测试TypeScriptClaude本地部署测试生成AppiumXCUITestiOS测试

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP