1. 程式人生 > 其它 >乾貨|app自動化測試之Appium 原始碼分析

乾貨|app自動化測試之Appium 原始碼分析

本文節選自霍格沃茲測試學院內部教材

Appium 是由 Node.js 來實現的 HTTP 服務,它並不是一套全新的框架,而是將現有的優秀的框架進行了整合,在 Selenium
WebDriver 協議(JsonWireProtocol/Restful web service)的基礎上增加了移動端的支援,使 Appium
滿足多方面的需求。

官方提供更詳細的 Appium 結構說明:https://appium.io/docs/en/contributing-to-appium/appium-
packages/

Appium 原理

不同平臺(如 Android,iOS)採用不同的執行和互動方式。Appium 可以建立並管理多個 WebDriver Session 來和不同的平臺互動。

以下幾步可以編譯構建 Appium 原始碼:


// clone appium 原始碼git clone https://github.com/appium/appium.gitcd appium// 安裝專案的依賴npm install// 編譯npm run build// 執行node .

Appium lib 目錄包含了核心程式碼。

比如 main.js 中包含 Appium 的啟動語句:


async function logStartupInfo (parser, args) {  let welcome = `Welcome to Appium v${APPIUM_VER}`;  let appiumRev = await getGitRev();  if (appiumRev) {    welcome += ` (REV ${appiumRev})`;  }  logger.info(welcome);  
  let showArgs = getNonD

如果簡單修改,將 Welcom to Appium 修改為 hello


async function logStartupInfo (parser, args) {  let welcome = `hello v${APPIUM_VER}`;  let appiumRev = await getGitRev();  if (appiumRev) {    welcome += ` (REV ${appiumRev})`;  }  logger.info(welcome);  
  let showArgs = getNonD

編譯後 Appium Server 的啟動日誌會發生改變:

值得注意的是, Appium 本身不包含任何有關測試方法的程式碼,如果對底層進行修改和定製,請觀看後續文章。

** _
來霍格沃茲測試開發學社,學習更多軟體測試與測試開發的進階技術,知識點涵蓋web自動化測試 app自動化測試、介面自動化測試、測試框架、效能測試、安全測試、持續整合/持續交付/DevOps,測試左移、測試右移、精準測試、測試平臺開發、測試管理等內容,課程技術涵蓋bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相關技術,全面提升測試開發工程師的技術實力
QQ交流群:484590337
公眾號 TestingStudio
點選獲取更多資訊