搭建基于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)顯示如下:

找到 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。可以到官網下載。

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

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?
復制代碼

轉載于:https://juejin.im/post/5bea64616fb9a049ef261f73

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537504.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537504.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537504.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git 可視化工具_Git的基本使用(二)

通過前文Git的基本使用(一)的學習,相信大家對如何將iOS項目通過Git傳到GitHub賬戶上有了一個基本的了解,其過程是相對繁瑣和容易出錯的。本文將告訴大家借助工具來幫助我們實現這些操作,并對前文進行進一步補充。一、兩個軟件Visual Studio C…

小米8配哪個版本的MIUI?

小米8之前我是忠實的魅粉,魅族手機用過M8,MX3,note5,MX6 pro。 魅族真的是被聯發科的cpu坑了,一核有難,八核圍觀。 入手小米8,miui是9,一路跟著系統自動更新,更新到了12。…

3D設計桌面云

榕力3D設計桌面云方案,為使用GPU高負載應用的設計師們提供強大支持,如3D建模、光線追蹤、渲染計算等領域,帶來極致流暢的3D設計桌面體驗,同時提升工作效率、可管理性和安全性。 3D設計桌面云方案滿足了工業客戶在專業設計場景中的…

PDF圖片文字識別

工具 adobe acrobat XI PRO 沒有安裝該軟件的,需下載安裝,有了此軟件,pdf隨意改,必備! 步驟 1.打開pdf文件,點擊工具---文本識別---在本文件中 2.選擇“所有頁面”,點擊“編輯” 3.選擇語言&a…

python中import的作用_python使用import報錯是什么原因

在練習Python中package的相對導入時,即from . import XXX 或者from .. import XXX 有時會遇到這樣兩個錯誤:SystemError: Parent module not loaded, cannot perform relative import 和ValueError: attempted relative import beyond top-level packag…

win10卓越性能模式,提升電腦性能

Win10隱藏了一個電源模式“卓越性能”,是比“高性能”模式更強性能的電源模式。 這個模式開啟后,電腦到底有沒有變快呢?心理上是快了。 開啟步驟 1.鼠標移到開始按鈕圖標上,別動!!!&#xff…

Redis Sentinel 模擬故障遷移

什么是redis sentinel 參考文檔:https://redis.io/topics/sentinel 簡單的來說,就是Redis Sentinel 為redis 提供高可用性,主要體現在下面幾個方面:1.監控:redis sentinel會不間斷的監控主服務器和從服務器是否正常工作2.通知:當出現問題時,…

python2中文輸出代碼_解決vscode python print 輸出窗口中文亂碼的問題

解決vscode python print 輸出窗口中文亂碼的問題 發布時間:2020-09-17 23:53:25 來源:腳本之家 閱讀:119 一、搭建 python 環境 在 VSC 中點擊 F1 鍵,彈出控制臺,輸入 ext install 界面左側彈出擴展窗格,輸…

十二贊日志收集與報警系統一覽

先快速介紹一下十二贊的日志收集系統:十二贊的日志收集系統,分為兩塊,一塊是線上系統的各種報錯、異常的日志收集,主要是各種線上代碼運行期間產生,我們稱之為log-collect,一塊是用戶行為操作的日志收集&am…

招標投標法(摘錄)

黑色:原文 紅色:重點 藍色:博主批注 第三條 在中華人民共和國境內進行下列工程建設項目: (一〉大型基礎設施、公用事業等關系社會公共利益、公眾安全的項目; ( 二〉全部或者部分使用國有資…

erp生產管理系統流程_企業生產管理好幫手——ERP智能管理系統

ERP企業管理軟件是為企業決策層及員工提供決策運行手段的管理平臺。在生產制造制造業中,盡管加工早已用于機械自動化,但在倉庫管理、人工管理工作,還必須erp公司智能管理系統協助管理方法。erp公司管理軟件是公司供應鏈管理的綜合性管理軟件&…

神經網絡的基本工作原理

神經網絡的基本工作原理 一、總結 一句話總結:先給一個初始值,然后依賴正確值(真實值)進行修復模型(訓練模型),直到模型和真實值的誤差可接受 初始值 真實值 修復模型 1、神經網絡由基本的神經元…

政府采購法(摘錄)

黑色:原文 紅色:重點 藍色:博主批注 第七條 政府采購實行集中采購和分散采購相結合。集中采購的范圍由省級以上人民政府公布的集中采用目錄確定。 屬于中央預算的政府采用項目,其集中采用目錄由國務院確定并公布;屬…

jsonrpc aria2_拋棄迅雷,Aria2 新手入門

迅雷已經用了 10 年,一直把它看作是速度最快也最方便的下載工具。迅雷會員也是我必續的服務。但,迅雷墮落了。thunder: 迅雷專屬鏈接越來越少,基本都是磁力、BT 的天下迅雷會員加速不再給力,大量資源速度為 0。會員雖然還有一年多…

《招標投標法》和《招標投標實施條例》有什么關系?

招投標法是1999年頒布2000年正式執行的我國第一部關于招投標方面的法律,對我國的招投標起到指導性作用,而實施條例是于2012年2月1日正式執行的法律法規,是根據招投標法頒布10年以來一些不足做了進一步的補充和說明,更具有可操作性…

pytorch 測試每一類_2D-UNet腦膠質瘤分割BraTs + Pytorch實現

2D-UNet講解玖零猴:U-Net與FCN的區別醫學表現網絡詳解創新?zhuanlan.zhihu.comBraTs數據準備數據來源本文用的訓練集和驗證集均來自BraTs2018的訓練集(其中HGG:210個病人,LGG:75個病人)但由于BraTs只公開訓練集數據,沒有測試集數據,如果在訓練集中再拆一部分用來作…

電商必備6款商品詳情數據采集,一鍵批量下載淘貓拼和1688寶貝信息和鏈接!

當我們分析競品以及選款復制時,往往需要先將商品信息采集下載下來,然而一個個去尋找商品并手動下載,顯然是不現實的。 特別是做無貨源店群的賣家,可能需要在不同平臺采集商品信息,那么就需要用到適用不同平臺的商品采…

合同法摘錄

黑色:原文 紅色:重點 藍色:博主批注 第十條 當事人訂立合同,有書面形式、口頭形式和其他形式 。 (口頭形式和其他形式,沒聽過吧) 第十一條 書面形式是指合同書、信件和數據電文&#xff0…

vue.js的項目實戰

歡迎大家前往騰訊云社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由蔡述雄發表于云社區專欄 需求背景 組件庫是做UI和前端日常需求中經常用到的,把一個按鈕,導航,列表之類的元素封裝起來,方便日常使用,調用方…

c++ 輸出二進制_Python入門3print格式化輸出的幾種方法

接《Python入門2》print格式化輸出的幾種方法⒂格式化輸出舉例【例】str_name"小明"num_age15print("我叫%s,今年%d歲"%(str_name,num_age))#注意print的前后兩部分用%間隔,不是逗號,后面的輸出列表加小括號【例】str&qu…