若是想作手機端的自動化測試,Appium是首選的測試框架,由於網上使用的人多,資料豐富,支持語言多 Jave,Python,C#,Ruby,PHP,遇見問題也容易獲得幫助。沒有其餘框架那麼大侷限。android
關於Appium環境搭建的例子網上比較多,不過都是關於Python,Java的,使用C#客戶端的資料比較少,公司現有的測試系統是基於C#構建的,由於要和現有系統集成,因此選擇的C#語言做爲客戶端, 下載Appium 官網提供的C#例子,可是對應的Android 版本,Nunit 版本都比較舊,對於初次接觸手機測試的人來講,一步一個坑,把例子拿下來,折騰了一兩天,仍是各類問題。最終經過百度,Google,終於搭建好了環境,如今分享一下過程,但願對於後來人會有些幫助。ios
默認你們是安裝了Visual Studio 的,若是沒有安裝,請百度如何安裝Visual Studiogit
搭建環境有三部分,模擬器環境準備,Appium服務器環境準備,C#單元測試工程環境準備,關於前兩部分羣內都有視頻資料,你們能夠參考。github
下面咱們開始:面試
模擬環境搭建 模擬環境搭建建議用Android Studio ,這樣配置簡單,模擬器的性能也強一些。android-studio
下載地址:www.android-studio.org/ 最新版本是3.2服務器
安裝完成後打開 Android Studioapp
在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。能夠到官網下載。
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。以下圖: 1using Microsoft.VisualStudio.TestTools.UnitTesting;
2
3using OpenQA.Selenium.Remote;
4
5using System;
6
7namespace androidTest
8
9{
10
11 [TestClass]
12
13 public class UnitTest1
14
15 {
16
17 [TestMethod]
18
19 public void TestMethod1()
20
21 { 若是對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。
22 感興趣能夠175317069,羣內會有不按期的發放免費的資料連接,這些資料都是從
23 各個技術網站蒐集、整理出來的,若是你有好的學習資料能夠私聊發我,我會註明
24 出處以後分享給你們。
25
26 DesiredCapabilities capabilities = new DesiredCapabilities();
27
28 capabilities.SetCapability("deviceName", "Android Emulator");
29
30 capabilities.SetCapability("automationName", "Appium");
31
32 capabilities.SetCapability("platformName", "Android");
33
34 capabilities.SetCapability("platformVersion", "6.0"); //能夠根據本身的模擬器版版本進行修改。
35
36 capabilities.SetCapability("appPackage", "com.android.calculator2"); //安卓自帶計算器
37
38 capabilities.SetCapability("appActivity", ".Calculator");
39
40
41
42 RemoteWebDriver wd = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities);
43
44 try
45
46 {
47
48 var result = wd.FindElementById("digit_5");
49
50 result.Click();
51
52 }
53
54 catch (Exception ex)
55
56 {
57
58 Console.WriteLine(ex.Message);
59
60 }
61
62 finally { wd.Quit(); }
63
64
65
66 }
67
68
69
70 }
71
72}
73
74原文:https://blog.csdn.net/Stephen_shijun/article/details/83994212
複製代碼