【Android測試】【第十四節】Appium——簡述
前言
同樣的,這一篇我要介紹的也是一款UI自動化工具,地址:http://appium.io/
第三方(非谷歌)研發的開源測試工具,說到這裏也許有人會問 “為什麽已經介紹了Uiautomator還要介紹它呢?”,我們就說說Appium有哪些不一樣的地方:
1、appium可以測試原生的、混合的、或者是移動端的web項目;
2、appium不僅支持測試Android應用,還可以測試ios;
3、appium跨平臺,可以運行在Windows或者Linux上;
4、appium支持多種語言,你可以用你自己熟悉的語言,如java、ruby、python等來完成你的腳本。
它的底層架構是:
網上找了兩段解釋,說的應該比較清楚:
一、Appium采用底層驅動商提供統一API,就是WebDriver API。
WebDriver(也稱Selenium WebDriver)其實是一個C/S架構的協議,叫做JSON Wire Protocol。通過這個協議,用任何語言寫成的客戶端都可以發送HTTP請求給服務器。這就意味著你可以自由選擇你想要使用的測試框架和執行器,也可以將任何包含HTTP客戶端的庫文件加入到你的代碼中。換句話說,Appium的WebDriver不是一個技術上的測試框架,而是一個自動化庫。
二、在Android端,WebDriver利用Bootstrap.js,最後通過調?用UiAutomator的命令,實現App的自動化測試。UiAutomator測試框架是Android SDK?自帶的App UI自動化測試Java庫。另外由於UiAutomator對H5的?支持有限,appium引入了chromedriver來實現基於H5的自動化。
1.左邊的WebDriver script是我們的selenium測試腳本
2.中間是起的Appium的服務,Appium在這邊起了一個Server(4723端口),跟seleniumWebdriver測試框架類似,Appium?支持標準的WebDriver JSONWireProtocol 。在這裏提供了一套web服務,Appium Server接收web driver 標準請求,解析請求內容,調?用對應的框架響應操作。如:腳本發送一個點擊按鈕的請求給appium server,
3. appium server會把請求轉發給中間件Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap 接收appium 的命令(4724端口),最終通過調?用UiAutomator的命令來實現。
4.最後執?行的結果由Bootstrap返回給appium server
5.另外,appium還用到了chromedriver來?支持基於H5(webview)的測試。
了解完基本的一些之後,就可以環境搭建了。
【Android測試】【第十四節】Appium——簡述