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,就能在模擬器上跑自動化啦~