1. 程式人生 > 其它 >Selenium面試題3-appium工作原理、Selenium和Appium的關係?

Selenium面試題3-appium工作原理、Selenium和Appium的關係?

目前Appium框架可以時支援android 和 ios 兩個作業系統的App自動化測試

一、appium-Android工作流

在Android端,appium基於WebDriver協議,利用Bootstrap.jar,最後通過調⽤用UiAutomator的命令,實現App的自動化測試

具體的步驟:

1.客戶端是我們寫的webdriver測試指令碼。
2.中間是Appium的服務,Appium在服務端啟動一個Server(4723埠)。在這裡提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,解析請求內容,調⽤用對應的框架響應操作。
3.appium server會把請求轉發給中介軟體Bootstrap.jar ,它是用java寫的,安裝在手機上.Bootstrap監聽4724埠並接收appium 的命令,最終通過調⽤用UiAutomator的命令來實現。
4.最後Bootstrap將執行的結果返回給appium server
5.appium server再將結果返回給 appium client

二、appium-iOS工作流

在iOS端,appium同樣使⽤WebDriver的一套協議。與Android端測試框架不同的是appium ios封裝了apple的 Instruments框架,主要用了Instrument的UIAutomation(Apple的自動化測試框架),然後在裝置中注入bootstrap.js進行監聽。

具體的步驟:

1.客戶端是我們寫的webdriver測試指令碼。
2.中間是Appium的服務,Appium在服務端啟動一個Server(4723埠),跟selenium Webdriver測試框架類似, Appium⽀持標準的WebDriver JSONWireProtocol。在這裡提供它提供了一套REST的介面,Appium Server接收web driver client標準rest請求,解析請求內容,調⽤用對應的框架響應操作。
3.appium server呼叫instruments.js 啟動⼀一個socket server,同時分出一個⼦子程序運⾏instruments.app,將bootstrap.js(UIAutomation指令碼)注⼊入到device⽤於和外界進行互動。
4.最後Bootstrap.js將執行的結果返回給appium server。
5.appium server再將結果返回給 appium client。

三、Selenium和Appium的關係

區別:Selenium是web端的自動化測試工具,Appium是移動端的自動化測試工具

聯絡:在Python的appium包中實際繼承了Selenium,在測試過程中將移動端的頁面元素當作是網頁來處理,

   所以Selenium的定位方法也可以使用