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

軟體測試愛碼士發表於2018-11-13

搭建基於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 ,這樣配置簡單,模擬器的效能也強一些。

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

安裝完成後開啟 Android Studio

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

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

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

安裝 Android SDK 例如:Android 6.0

接下來配置環境變數:

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

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

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

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

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

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

搭建基於C#和 Appium 的 Android自動測試環境
安裝完SDK 後就可以安裝模擬器了,關閉SDK Manager ,開啟 AVD Manager (Tools ->AVD Manager)

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

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

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

點選Next

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

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

搭建基於C#和 Appium 的 Android自動測試環境
點選Finish 就完成了虛擬機器的建立。

搭建基於C#和 Appium 的 Android自動測試環境
點選啟動,啟動虛擬機器

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

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

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

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

下載地址:github.com/appium/appi…

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

啟動Appium

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

點選 Start Server v1.9.1

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

這樣Appium Server 就啟動了。

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

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

搭建基於C#和 Appium 的 Android自動測試環境
在 NuGet 中查詢 Appium (Tools ->NuGet Package Manager -> Manage NuGet Package for Solution…)

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

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

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

 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 
複製程式碼

相關文章