<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # [1:Appium 介紹]() ## **官網介紹:** Appium 是一個開源工具,用于自動化 iOS 手機、 Android 手機和 Windows 桌面平臺上的原生、</p>移動 Web 和混合應用。**原生應用**指那些用 iOS、 Android 或者 Windows SDKs 編寫的應用。<p> **移動 Web 應用**是用移動端瀏覽器訪問的應用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的內置瀏覽器)。**混合應用**帶有一個「webview」的包裝器——用來和 Web 內容交互的原生控件。類似于[Apache Cordova](https://cordova.apache.org/)或[Phonegap](http://phonegap.com/)項目,<p>創建一個混合應用使得用 Web 技術開發然后打包進原生包裝器創建一個混合應用變得容易了。 重要的是,Appium 是跨平臺的:它允許你用同樣的 API 對多平臺(iOS、Android、Windows)寫測試。做到在 iOS、Android 和 Windows 測試套件之間復用代碼。 了解 Appium “支持”這些平臺意味著什么、有哪些自動化方式的詳細信息,請參見[Appium 支持的平臺](http://appium.io/docs/cn/about-appium/platform-support/index.html)。 <br> <br> ### [2::Appium 的理念]() Appium 旨在滿足移動端自動化需求的理念,概述為以下四個原則: 1. 你不應該為了自動化而重新編譯你的應用或以任何方式修改它。 2. 你不應該被限制在特定的語言或框架上來編寫運行測試。 3. 移動端自動化框架不應該在自動化接口方面重造輪子。 4. 移動端自動化框架應該開源,在精神、實踐以及名義上都該如此。 <br> <br> ### [3:Appium 的概念]() **客戶端 / 服務器架構** Appium 的核心一個是暴露 REST API 的 WEB 服務器。它接受來自客戶端的連接,監聽命令并在移動設備上執行,答復 HTTP 響應來描述執行結果。實際上客戶端 / 服務器架構給予了我們許多可能性:我們可以使用任何有 http 客戶端 API 的語言編寫我們的測試代碼,不過選一個[Appium 客戶端程序庫](http://appium.io/downloads)用起來更為容易。我們可以把服務器放在另一臺機器上,而不是執行測試的機器。我們可以編寫測試代碼,并依靠類似[Sauce Labs](https://saucelabs.com/products/mobile-app-testing)的云服務接收和解釋命令。 **會話(Session)** 自動化始終在一個會話的上下文中執行,這些客戶端程序庫以各自的方式發起與服務器的會話,但最終都會發給服務器一個`POST /session`請求,請求中包含一個被稱作「預期能力(Desired Capabilities)」的 JSON 對象。這時服務器就會開啟這個自動化會話,并返回一個用于發送后續命令的會話 ID。 **預期能力(Desired Capabilities)** 預期能力(Desired Capabilities)是一些發送給 Appium 服務器的鍵值對集合(比如 map 或 hash),它告訴服務器我們想要啟動什么類型的自動化會話。也有許多能力(Capabiliti es)可以修改服務器在自動化過程中行為。例如,我們可以將`platformName`能力設置為`iOS`,以告訴 Appium 我們想要 iOS 會話,而不是 Android 或者 Windows 會話。或者我們也可以設置`safariAllowPopups`能力為`true`,確保我們在 Safari 自動化會話期間可以使用 JavaScript 打開新窗口。有關 Appium 能力的完整列表,請參閱[能力文檔](http://appium.io/docs/cn/writing-running-appium/caps/index.html)。 **Appium 服務器** Appium 是一個用 Node.js 寫的服務器。可以從[源碼](https://github.com/appium/appium/blob/master/docs/cn/contributing-to-appium/appium-from-source.md)構建安裝或者從[NPM](https://www.npmjs.com/package/appium)直接安裝: ``` $ npm install -g appium $ appium ``` Appium 的`beta`版本可以通過 NPM 使用`npm install -gappium@beta`指令進行安裝。它是開發版本,所以可能存在破壞性的變更。在安裝新版本請卸載`appium@beta`(`npm uninstall -gappium@beta`)以獲得一組干凈的依賴。 **Appium 客戶端** 有一些客戶端程序庫(分別在 Java、Ruby、Python、PHP、JavaScript 和 C# 中實現),它們支持 Appium 對 WebDriver 協議的擴展。你需要用這些客戶端程序庫代替常規的 WebDriver 客戶端。你可以在[這里](http://appium.io/docs/cn/about-appium/appium-clients/index.html)瀏覽所有程序庫的列表。 **[Appium Desktop](https://github.com/appium/appium-desktop)** 這有一個 Appium 服務器的圖形界面封裝可以下載,它適用于任何平臺。它打包了 Appium 服務器運行需要的所有東西,所以你不需要為 Node 而煩惱。它們還提供一個 Inspector 使你可以查看應用程序的層級結構。這在寫測試時可以派上用場。 ### 入門指南 [入門指南](http://appium.io/docs/en/about-appium/getting-started/index.html)(English) 了解更多詳細的要求和指南呢? # 2:appium運行原理(精簡介紹) ## 1:Appium運行原理 Appium是一個開源的自動化框架,可用于測試**原生APP**,**混合型APP**和**WEB APP**。它通過**WebDriver協議**驅動iOS,Android和Windows系統app。 重要的是Appium是**跨平臺**的,何為跨平臺,意思就是可以針對不同的平臺用一套api來編寫測試用例。 ![](https://img.kancloud.cn/b7/fa/b7fa48502b7cc9e217015207d586d57e_849x321.png) 如圖所示,appium主要分為三個點:**client端**,**server端**,及**移動設備** * client端:用各類語言寫的測試腳本 * server端:我們安裝appium工具的那部分,專門用來監聽并接收來自client端的請求,轉發請求并控制移動設備執行測試,默認開啟并監聽4723接口 * 移動設備:支持三類設備,我們的最終目的:在設備上自動執行指定的操作 **整個執行過程包括**: 1. 在某臺服務器上安裝appium工具(server端),開啟進程(默認4723端口)監聽; 2. 編寫測試腳本,放置到服務器上,執行該測試腳本(相當于發送命令給server端); 3. 移動設備接收到server端發送過來的命令,執行指定的操作。 ## 2:Appium 在 Android 上的架構 ![](https://img.kancloud.cn/d1/12/d11266d08bc2e509ad02bb9a2c7a6d3b_697x366.png) 通過架構圖,我們可以知道appium是基于WebDriver協議的,它利用Bootstrap調用google公布的android自動化測試框架UIautomator的命令來實現app自動化。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看