標籤:web項目 bubuko linu targe 地址 ref android 安裝 內建
前言
同樣的,這一篇我要介紹的也是一款UI自動化工具,地址:http://appium.io/
第三方(非Google)研發的開源測試載入器,說到這裡也許有人會問 “為什麼已經介紹了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——簡述