Appium基礎認識

       本文介紹了Appium相關的一些工具的概念以及彼此的關係,方便對appium有一個總體的認識。內容包括了JUnit,TestNG簡介以及Appium的基本工作原理。


自動化工具的比較:

Appium主流語言開源社區良好,跨平臺
Xamarin Test CloudC#、ruby開源,Xamarin Test Recorder非常好用。配套完整,和AWS Device Farm類似的真實手機雲測試。
Xamarin的目的是使用C#開發Android、IOS等移動原生應用
EggplantSenseTalk企業服務收費,不開源。可以發郵件索要體驗賬號

備註:由於需要在AWS Device Farm上進行自動化測試而其支持Appium,所以採用Appium。


JUnit:Java測試框架,最常見於單元測試,最初針對單元代碼

TestNG:Java測試框架,消除JUnit的許多限制,更靈活,適用於大型項目。最初設計於高級測試。


Selenium:

1、web應用程序的自動化測試工具,直接運行在瀏覽器中

2、基於Client/Server架構,所以理論上支持所有語言


Appium:

1、可以看做Selenium在移動端的擴展

2、開源、跨平臺的UI自動化測試工具

3、支持IOS、Android、FireOS平臺上的原生、web應用和混合應用。

4、無需修改現有應用的任何信息

5、無語言限制,基於C/S架構,理論上支持所有編程語言


Appium工作原理:

真正執行自動化的工作引擎是平臺相關的自動化框架(無需修改應用的原因)

IOS(XCode6+):UIAutomation(棄用)

IOS(XCode8+):XCUITest

Android2.3+:Google’s Instrumentation(由單獨對的Selendroid提供)

Android4.2+:Google’s UIAutomator


wKiom1nJvm_wjjM0AAAeBh2cAOg275.png

工作原理示意圖


appium-client:

1、可以理解爲我們藉助appium-client庫寫的測試代碼

2、appium-client如java-client、python-client等是對Selenium Client擴展的庫,方便使用

3、整個流程:建立Session,執行測試,銷燬Session


appium-server:

1、解析client發來的命令請求

2、將請求發送到device上

3、device上的中間件如:Android上的bootstrap將請求轉換成device執行完畢返回server,server再返回給client


device:

1、Android Emulator

2、Android Phone

3、IOS Simulator

4、IOS Phone


如何寫測試代碼:

1、根據你選擇的編程語言,選擇官方提供的對應的client(API),如java-client。

2、選擇合適的測試框架如JUnit,TestNG等編寫測試代碼

3、搭建Appium Server,使用appium-doctor驗證環境可用。

4、連接物理、模擬設備,執行代碼


Appium和JUnit、TestNG的關係(框架是啥!)

1、Appium可以理解爲一套工具,包括一個運行在服務端的Appium-Server,以及一套API用於與Server通信。Client通過API向Server發送請求,Server將請求發送到Device,Device上的中間件如Android上的bootstrap或IOS上的WebDriverAgent,會把請求轉化爲平臺相關的自動化操作在Device上執行。

2、不一定非要JUnit或TestNG,如果選擇python也可以用unittest等。甚至不使用任何框架,在Java中直接在main函數中完成Session的創建,測試代碼的執行,Session的銷燬的整個流程。可是這就丟失了使用測試框架的好處。

3、自動化測試優先選擇TestNG,網上普遍說:JUnit是單元測試的首選,而TestNG相對於JUnit更適合其他類型的測試。我的原因是:AWS Device Farm同時支持JUnit和TestNG,但總是先把JUnit轉換成TestNG代碼再執行的。另外AWS官方示例代碼使用的就是TestNG。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章