appium的工作原理
我們在去熟悉一套系統或者框架的時候,我們想去學好,我們是不是都要了解一下工作原理呢?只有我們知道了他是如何工作之后,在以后我們遇見棘手的問題時才能夠從根本去解決問題。但是在講這個之前需要講一個題外話,不知道有誰思考過appium是如何實現自動化的嗎?無論ios還是android在做自動化時考慮到安全等因素他們都是不允許直接去操作的,所以我們要做自動化那么就必須借助他們本身公布出來的一些工具,android是UIAutomator,ios使用的是UIAutomation,其實我們所謂的自動化就是我們使用的工具去調用他們公布出來的框架的方法,然后再去執行。下面我們來看一下appium的工作原理,首先來看一張圖片。
通過上面的圖片我們可以知道appium是基於WebDriver協議的,他利用Bootstrap調用google公布的android的自動化測試框架UIautomator的命令來實現我們的app自動化,再能理解一點就是我們的電腦(client)上運行自動化測試腳本,調用的是webdriver的接口,appium server接收到我們client上發送過來的命令后他會將這些命令轉換為UIautomator認識的命令,然后由UIautomator來執行自動化。
可能這里有些小伙伴會迷糊,說android是這樣那么ios也是這樣嗎?其實真的差不多,只是他們支持的工具不一樣,ios使用的是UIAutomation,首先client發送腳本請求,再到我們的appium服務,這里appium會調用instruments去啟動一個server,然后讓他去執行后面的操作來完成自動化。備注:UIAutomation是instruments下面的一個工具,所以不要驚慌。
Appium的優勢
現在市面上做自動化的框架無論是成熟還是一般的都有很多,我們不可能都去熟悉,但是我們需要了解一個常見的,不然你怎么知道好與壞呢?我相信在學習自動化時就想過為什么需要學appium,其實我在剛開始做移動自動化時選擇的是robotium,但是后來因為項目的需要發現我如果只是用robotium發現ios根本沒法做,那么我就需要去單獨做一個,這個會很麻煩,這個時候appium剛好出來了,剛接觸他我就決定使用了,因為在之前做web自動化時用的就是selenium,所以這個用起來會很方便。下面我們來列舉一下他的優點:
1、可以同時支持android、ios
2、支持多種語言,java、python、php、Ruby等等
3、不用為復雜的環境發愁
4、如果你有selenium經驗,直接上手