在 JavaScript中编写 Appium 测试(入门)
1.编写一个测试 (JS)
要在 JavaScript(Node.js)中编写 Appium 测试,我们需要选择一个与 Appium 兼容的客户端 库。维护最好的库和 Appium 团队推荐使用的库是 WebdriverIO, 所有就让我们使用它吧。既然我们已经安装了 Appium,我们 已经满足了 Node 和 NPM 的要求。因此,只需在计算机上创建一个新的项目目录 然后在其中初始化一个新的 Node.js 项目
import { remote } from 'webdriverio';// 配置Appium测试所需的设备和应用信息
const capabilities = {platformName: 'Android', // 测试平台为安卓'appium:automationName': 'UiAutomator2', // 使用UiAutomator2自动化引擎'appium:deviceName': 'emulator-5554', // 目标设备名称(通过adb devices获取)'appium:appPackage': 'com.android.settings', // 被测应用包名(设置应用)'appium:appActivity': '.Settings', // 启动的Activity名称
};// 从环境变量获取Appium服务器端口,默认4723
const port = process.env.APPIUM_PORT ? parseInt(process.env.APPIUM_PORT, 10) : 4723;
// 验证端口有效性
if (isNaN(port)) {console.error('Invalid APPIUM_PORT environment variable');process.exit(1);
}// 配置WebDriver连接选项
const wdOpts = {hostname: process.env.APPIUM_HOST || 'localhost', // Appium服务器地址port, // 服务器端口logLevel: 'info', // 日志级别capabilities, // 传递设备和应用配置
};/*** 执行自动化测试的主函数* 1. 连接Appium服务器* 2. 定位并点击设置中的电池选项* 3. 清理资源并退出*/
async function runTest() {const driver = await remote(wdOpts); // 初始化WebDriver会话try {// 通过ID定位设置中的电池选项(注意:此处ID需要根据实际应用UI调整)const batteryItem = await driver.$('id=com.android.settings:id/battery_item_id');await batteryItem.click(); // 执行点击操作} finally {await driver.pause(1000); // 等待1秒便于观察结果await driver.deleteSession(); // 关闭会话释放资源}
}// 执行测试并处理异常
runTest().catch((error) => {console.error('Test failed:', error);// 可扩展错误处理逻辑,如发送通知、记录详细日志等
});
基本上,这段代码正在执行以下操作:
- 定义一组 "Capabilities" 能力值(参数),以便 Appium 知道您想自动执行哪种任务。 要自动执行的任务。
- 在内置的 Android 设置应用程序上启动 Appium 会话。
- 找到 "Battery"列表项并点击它。
- 停顿片刻,纯粹是为了观察自动化视觉效果。
- 结束 Appium 会话。
现在,通过 NPM 安装 webdriverio
软件包
npm i --save-dev webdriverio
2.启动模拟器 + 连 Appium
- 开模拟器:比如用雷神模拟器,启动后看到安卓桌面。
记得开启ROOT权限和ADB调试
- 查设备:命令行输 adb devices,看到模拟器设备名(如 emulator-5554 ),说明连好了。
如果显示有多个设备可使用-s 指定设备进行连接
- 改代码里的 deviceName:把 capabilities 里的 deviceName 改成 adb devices 显示的名称(比如 emulator-5554 )。
- 重启 Appium + 跑脚本:确保 Appium 开着,再执行 node test.js,就能在模拟器上跑自动化啦~