1. 程式人生 > >IOS開發-基於WebDriverAgent代理服務,實現iOS手機app自動化測試的框架搭建

IOS開發-基於WebDriverAgent代理服務,實現iOS手機app自動化測試的框架搭建

導引

iOS自動化測試一直使用的appium,iOS系統升級至10.0 Xcode8.0之後,改用WebDriverAgent代理服務作為server,編寫了一套基於WebDriverAgent服務 app客戶端自動化框架。並實現了自動化測試app的demo。

一:整體框架設計

首先是WebDriverAgent服務原理以及WDAClient以及ruby測試指令碼呼叫框架圖如下:


二:WebDriverAgent

WebDriverAgent 在 iOS 端實現了一個 WebDriver server ,藉助這個 server 我們可以遠端控制 iOS 裝置。你可以啟動、殺死應用,點選、滾動檢視,或者確定頁面展示是否正確。

它有如下特性:

真機和模擬器都支援
實現了大部分的 WebDriver spec
USB support for devices,所謂的usb支援,指的是裝置不需要上網,目前client binding 還沒有。
提供了一個 Inspector
Easy development cycle as it can be launched & debugged directly via Xcode
Unsupported yet, but works with tvOS & OSX
執行和使用:

WebDriverAgent Facebook釋出的,這裡有詳細介紹:https://github.com/facebook/WebDriverAgent/

直接下載下來,Xcode8中除錯一下;連線真機執行test 手機端就會安裝好server-WebDriverAgent

(具體教程test而Home上有的:https://toutiao.io/posts/404649/app_preview)

Demo執行後的介面顯示:

主介面:

 

Alerts介面:


Attributes介面:


Scrolling介面:


三 :WDAClient

WDAClient是基於WebDriverAgent實現的WDA的客戶端。至目前完成了被測app的啟動,根據不同屬性定位元素 以及元素的點選 輸入等基本操作。

具體實現:

1. 首先:啟動webdriveragent;

2. app啟動:

向WebdriverAgent傳送post請求 ,請求參考WDA專案中 FBSessionCommands.m

請求地址:url=http://#{ip}:8100/session,WevDriverAgent會響應啟動app,並返回session資料;

3.啟動app後,定位元素以及操作元素

定位元素 post請求:url+/session/element, 請求引數是定位元素標籤以及值 參考 FBFindElementCommands.m;響應會返回elementId

操作*元素post請求:url+/session/element/id/* 參考專案中檔案:/Commands/FBElementCommands.m 裡面介紹了很多元素操作的方法 進行相應的轉換即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
在WebDriverAgentLib/Commands/中有很多方法,目前只實現這麼多,後續將模組補充完整;

四:Testing Script

WDAClient封裝完成之後,就是自動化測試指令碼實現。

安裝WebDriverAgent筆記注意點

在安裝WebDriverAgent時遇到了不少坑,小小的記錄下。最初參考的是這個地址來安裝,很詳細;

1、WebDriverAgent教程在github上時有的在xcode打包之前一定記得要先執行 ./scripts/bootstrap.sh,至於證書什麼的,使用自己個人賬號就好了

2、ios10後就不能直接訪問http://127.0.0.1:8100/inspector了,需要通過usb與手機通訊好才能使用;即使用iproxy來轉發埠;

轉發方法:iproxy <本地埠> <手機埠> [udid];一臺機子時可以不寫udid;執行轉發方法後控制檯顯示:waiting for connection

3、執行好2後,在瀏覽器中執行http://localhost:8100/inspector;就可以獲取到元素資訊了
---------------------
作者:Maxdong24
來源:CSDN
原文:https://blog.csdn.net/Maxdong24/article/details/75532791
版權宣告:本文為博主原創文章,轉載請附上博文連結!