基於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) 

 

三  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  里面介紹了很多元素操作的方法 進行相應的轉換即可。

在WebDriverAgentLib/Commands/中有很多方法,目前只實現這么多,后續將模塊補充完整;

 

四  Ruby Testing Script

   WDAClient封裝完成之后,下面就是自動化測試腳本實現;我使用的是ruby語言編寫的;分為test*.rb, *.rb,app.rb;

     test_*.rb:  使用自帶測試框架testunit編寫app(eg. login) 測試腳本;

     *.rb:  針對login page進行元素以及操作封裝

     app.rb:是針對WDAClient中app啟動,元素定位和操作進行整理封裝供 *.rb  page使用。

     

本次只是總結了一下整個自動化測試框架;

具體實現請參考github上面的項目:https://github.com/anion102/wda_client; 熱烈歡迎大家指教。

     

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM