编写测试 (JS)

要使用 JavaScript (Node.js) 编写 Appium 测试,我们需要选择一个与 Appium 兼容的客户端库。维护得最好的库,也是 Appium 团队推荐使用的库是 WebdriverIO,所以让我们使用它。由于我们已经安装了 Appium,因此我们知道我们的 Node 和 NPM 要求已经满足。所以,只需在你的计算机上的某个位置创建一个新的项目目录,然后在其中初始化一个新的 Node.js 项目

npm init

在提示中输入什么内容并不重要,只要最终得到一个有效的 package.json 即可。

现在,通过 NPM 安装 webdriverio

npm i --save-dev webdriverio

完成后,你的 package.json 文件应该包含以下部分

package.json
{
  "devDependencies": {
    "webdriverio": "8.32.4"
  }
}

现在是编写测试本身的时候了。创建一个名为 test.js 的新文件,内容如下

test.js
const {remote} = require('webdriverio');

const capabilities = {
  platformName: 'Android',
  'appium:automationName': 'UiAutomator2',
  'appium:deviceName': 'Android',
  'appium:appPackage': 'com.android.settings',
  'appium:appActivity': '.Settings',
};

const wdOpts = {
  hostname: process.env.APPIUM_HOST || 'localhost',
  port: parseInt(process.env.APPIUM_PORT, 10) || 4723,
  logLevel: 'info',
  capabilities,
};

async function runTest() {
  const driver = await remote(wdOpts);
  try {
    const batteryItem = await driver.$('//*[@text="Battery"]');
    await batteryItem.click();
  } finally {
    await driver.pause(1000);
    await driver.deleteSession();
  }
}

runTest().catch(console.error);

注意

本指南的范围不包括对 WebdriverIO 客户端库或此处发生的所有事情进行完整的概述,因此我们将暂时不详细解释代码本身。你可能需要特别阅读 Appium 的 功能,以及熟悉优秀的 WebdriverIO 文档,以更全面地了解你看到的各种 API 命令及其用途。

注意

示例代码可在 GitHub Appium 存储库 中找到。

基本上,这段代码执行以下操作

  1. 定义一组要发送到 Appium 服务器的“功能”(参数),以便 Appium 知道你想要自动化什么。
  2. 在内置的 Android 设置应用程序上启动 Appium 会话。
  3. 找到“电池”列表项并点击它。
  4. 暂停片刻,纯粹是为了视觉效果。
  5. 结束 Appium 会话。

就是这样!让我们试一试。在运行测试之前,请确保在另一个终端会话中运行了 Appium 服务器,否则你将收到有关无法连接到服务器的错误。然后,你可以执行脚本

node test.js

如果一切顺利,你将看到设置应用程序打开并导航到“电池”视图,然后应用程序再次关闭。

恭喜你,你已经开始了你的 Appium 之旅!继续阅读以了解一些 下一步,以探索更多内容。