1. 程式人生 > >搭建基於C#和 Appium 的 Android自動測試環境

搭建基於C#和 Appium 的 Android自動測試環境

移動端的自動化測試框架主要就是UiAutomator,Espresso,Robotium和功能最強大,也是比較熱門的框架Appium

如果想做手機端的自動化測試,Appium是首選的測試框架,因為網上使用的人多,資料豐富,支援語言多 Jave,Python,C#,Ruby,PHP,碰見問題也容易得到幫助。沒有其他框架那麼大侷限。

關於Appium環境搭建的例子網上比較多,不過都是關於Python,Java的,使用C#客戶端的資料比較少,公司現有的測試系統是基於C#構建的,因為要和現有系統整合,所以選擇的C#語言作為客戶端, 下載Appium 官網提供的C#例子,但是對應的Android 版本,Nunit 版本都比較舊,對於初次接觸手機測試的人來說,一步一個坑,把例子拿下來,折騰了一兩天,還是各種問題。最終通過百度,Google,終於搭建好了環境,現在分享一下過程,希望對於後來人會有些幫助。

預設大家是安裝了Visual Studio 的,如果沒有安裝,請百度如何安裝Visual Studio

搭建環境有三部分,模擬器環境準備,Appium伺服器環境準備,C#單元測試工程環境準備,關於前兩部分群內都有視訊資料,大家可以參考。

下面我們開始:

模擬環境搭建
模擬環境搭建建議用Android Studio ,這樣配置簡單,模擬器的效能也強一些。

下載地址:http://www.android-studio.org/ 最新版本是3.2

安裝完成後開啟 Android Studio

在Tools選單下找到 SDK Manager 選單開啟( Tools –>SDK Manager)顯示如下:

找到 Android SDK (Appearance & Behavior ->System Setting -> Android SDK)

安裝 Android SDK 例如:Android 6.0

接下來配置環境變數:

配置ANDROID_HOME 變數,對應的目錄可用從下面位置找,

我對位置做過調整,和預設安裝的位置不一樣。

將 E:\android-sdk 替換成自己機器的地址。

在Path 中追加:%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools

安裝完SDK 後就可以安裝模擬器了,關閉SDK Manager ,開啟 AVD Manager (Tools ->AVD Manager)

點選左下角的Create Virtual Device 打開了 Virtual Device Configuration

選擇 phone ,找一個解析度小一些的機型 例如 480X800 ,解析度高了比較耗費資源。

點選Next

選擇 other Images, 找到你剛才下載的SDK 對應的Image ,上面選了Android 5.0 我們就下 Android 6.0 對應的Image ,點選Download 進行下載。完成後就可以點選Next 到最後一個畫面了。

點選Finish 就完成了虛擬機器的建立。

點選啟動,啟動虛擬機器

這樣虛擬機器就配置並啟動起來了,上面的映象使用的是arm 版本,如果你的機器是X86,Android Studio 建議你使用X86的虛擬機器。如果想使用X86的虛擬機器,需要在Bios中開啟 Virtualization Technology 設定為Enable ,作業系統可能也要做一些配置,這裡就不細說了。

接下來我們安裝AppiumServer。可以到官網下載。

下載地址:https://github.com/appium/appium-desktop/releases/tag/v1.7.1

Windows 作業系統 X86_64 處理器下載 appium-desktop-setup-1.7.1.exe 就可以了。

啟動Appium

點選 Start Server v1.9.1

這樣Appium Server 就啟動了。

最後我們來配置單元測試工程。

啟動Visual Studio ,建立一個單元測試工程。

在 NuGet 中查詢 Appium (Tools ->NuGet Package Manager -> Manage NuGet Package for Solution…)

找到 Appium.WebDriver ,選擇單元測試工程進行安裝。

完成後使用下面程式碼替換自動生成的單元測試程式碼。執行單元測試,就可以看到如下模擬器中的計算器被開啟,並點選了數字5。如下圖:

 

如果對軟體測試、介面測試、自動化測試、效能測試、LR指令碼開發、面試經驗交流。感興趣可以175317069,群內會有不定期的發放免費的資料連結,這些資料都是從各個技術網站蒐集、整理出來的,如果你有好的學習資料可以私聊發我,我會註明出處之後分享給大家。

using Microsoft.VisualStudio.TestTools.UnitTesting;

using OpenQA.Selenium.Remote;

using System;

namespace androidTest

{

    [TestClass]

    public class UnitTest1

    {

        [TestMethod]

        public void TestMethod1()

        {

            DesiredCapabilities capabilities = new DesiredCapabilities();

            capabilities.SetCapability("deviceName", "Android Emulator");

            capabilities.SetCapability("automationName", "Appium");

            capabilities.SetCapability("platformName", "Android");

            capabilities.SetCapability("platformVersion", "6.0"); //可以根據自己的模擬器版版本進行修改。

            capabilities.SetCapability("appPackage", "com.android.calculator2"); //安卓自帶計算器

            capabilities.SetCapability("appActivity", ".Calculator");

 

            RemoteWebDriver wd = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);

            try

            {

                var result = wd.FindElementById("digit_5");

                result.Click();

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

            }

            finally { wd.Quit(); }

             

        }

 

    }

}

原文:https://blog.csdn.net/Stephen_shijun/article/details/83994212