该项目使用Appium和WebdriverIO对移动应用进行端到端(E2E)测试自动化,支持Android和iOS平台。
注意: 本项目使用由WebdriverIO提供的示例移动应用(wdiodemoapp)进行演示和测试。
mcp-appium-server/
├── app/
│ ├── android/ # Android 应用文件
│ └── ios/ # iOS 应用文件(wdio.zip)
├── test/
│ ├── pageobjects/ # 页面对象模型文件
│ │ ├── forms.page.js # Android 表单屏幕
│ │ └── swipe.page.js # iOS 滑动屏幕
│ └── specs/ # 测试规范文件
│ ├── forms.e2e.test.js # Android 表单 E2E 测试
│ └── swipe.e2e.test.js # iOS 滑动 E2E 测试
├── wdio.conf.ts # 基础 WebdriverIO 配置
├── wdio.android.conf.ts # Android 特定配置
├── wdio.ios.conf.ts # iOS 特定配置
└── package.json
npm install -g appium)npm install
文件: test/specs/forms.e2e.test.js
测试流程:
运行命令:
npx wdio run wdio.android.conf.ts --spec test/specs/forms.e2e.test.js
预期结果: ✅ 通过(约12秒)
文件: test/specs/swipe.e2e.test.js
测试流程:
卡片描述:
运行命令:
npx wdio run wdio.ios.conf.ts --spec test/specs/swipe.e2e.test.js
预期结果: ✅ 通过(约10秒)
npx wdio run wdio.conf.ts
npx wdio run wdio.android.conf.ts
npx wdio run wdio.ios.conf.ts
npx wdio run wdio.android.conf.ts --spec test/specs/forms.e2e.test.js
npx wdio run wdio.ios.conf.ts --spec test/specs/swipe.e2e.test.js
wdio.android.conf.ts)com.wdiodemoappwdio.ios.conf.ts)app/ios/wdio.zip本项目遵循页面对象模型(POM)设计模式,以提高可维护性和复用性。
test/pageobjects/forms.page.js)navigateToFormsTab() - 导航到表单标签页enterText(text) - 在输入框中输入文本getInputResultText() - 获取输入结果文本toggleSwitch() - 切换开关元素getSwitchText() - 获取开关状态文本selectDropdownOption(optionText) - 选择下拉选项clickActiveButton() - 点击Active按钮clickOkButton() - 点击弹出窗口中的OK按钮test/pageobjects/swipe.page.js)navigateToSwipeTab() - 导航到滑动标签页swipeLeft() - 使用W3C Actions API执行向左滑动手势getAllCardDescriptions() - 滑动浏览并提取所有卡片描述iOS测试使用W3C Actions API进行手势自动化,这是现代标准并且与XCUITest驱动程序完全兼容:
await browser
.action("pointer")
.move({ x: startX, y: startY })
.down()
.pause(100)
.move({ x: endX, y: endY })
.up()
.perform();
注意: 已弃用的 touchPerform() 方法(JSON Wire Protocol)不兼容iOS/XCUITest,因为它使用带有请求体的HTTP GET,这违反了W3C WebDriver规范。
由于从zip文件安装应用,iOS测试需要增加超时设置:
newCommandTimeout: 300秒connectionRetryTimeout: 300000毫秒connectionRetryCount: 3com.wdiodemoapp 已安装在模拟器上app/ios/wdio.zip 存在且包含有效的应用包npm install -g appium 全局安装ISC