一睡毒、Appium的介紹
來自官網(wǎng)的解釋:Appium 是一個(gè)開源工具登馒,用于自動(dòng)化 iOS 手機(jī)、 Android 手機(jī)和 Windows 桌面平臺(tái)上的原生、移動(dòng) Web 和混合應(yīng)用溉卓。
我們使用了系統(tǒng)自帶的自動(dòng)化框架。這樣严肪,我們不需要把 Appium 特定的或者第三方的代碼編譯進(jìn)你的應(yīng)用键思,這意味著你測(cè)試使用的應(yīng)用與最終發(fā)布的應(yīng)用并無二致。我們使用以下系統(tǒng)自帶的自動(dòng)化框架:
iOS 9.3 及以上: 蘋果的XCUITest
iOS 9.3 及以下: 蘋果的UIAutomation
Android 4.3+: 谷歌的UiAutomator / UiAutomator2
Android 2.3+: 谷歌的Instrumentation. (通過綁定獨(dú)立的項(xiàng)目——Selendroid提供對(duì) Instrumentation 的支持)
Windows: 微軟的WinAppDriver
簡(jiǎn)而言之就是Appium作為一個(gè)中間橋梁阐枣,調(diào)用Android或iOS系統(tǒng)自帶的自動(dòng)化框架马靠,來實(shí)現(xiàn)了自動(dòng)化。
二蔼两、Appium的設(shè)計(jì)
appium是一個(gè)c/s 架構(gòu)甩鳄,appium把(系統(tǒng)本身的)供應(yīng)商提供的框架封裝到一套 api—— webdriver api內(nèi),WebDriver規(guī)定了一個(gè)客戶端-服務(wù)端協(xié)議(JSON Write Product)额划;使用python等語言由客戶端向服務(wù)端發(fā)送HTTP請(qǐng)求妙啃。對(duì)于Android和iOS本質(zhì)上工作原理一致:
對(duì)于Android而言,appium啟動(dòng)時(shí)會(huì)給設(shè)備發(fā)送一個(gè)jar包俊戳,方便后期通訊揖赴。
測(cè)試腳本通過web driver協(xié)議(http協(xié)議)發(fā)送給服務(wù)端———服務(wù)端命令發(fā)送給jar包,jar包調(diào)用系統(tǒng)內(nèi)部的自動(dòng)化測(cè)試框架抑胎,實(shí)現(xiàn)自動(dòng)化測(cè)試燥滑。
對(duì)于Ios而言,appium封裝了apple的XCUITest框架圆恤,在設(shè)備中注入了bootstrap.js(腳本)進(jìn)行監(jiān)聽突倍。
腳本 通過web driver協(xié)議(http協(xié)議)發(fā)送給服務(wù)端——服務(wù)端命令發(fā)送給jar包,腳本調(diào)用系統(tǒng)內(nèi)部的自動(dòng)化測(cè)試框架盆昙,實(shí)現(xiàn)自動(dòng)化測(cè)試羽历。
由于UIAutomator對(duì)H5支持有限,appium引入了chromdriver來支持H5 的自動(dòng)化淡喜。