自動化測試 Appium 在iOS 中的 使用

1. 自動化測試 的 原理

  1. 白盒測試 : 白盒測試主要測試APP的內部結構或運作,以代碼實現的角度來設計測試案例。白盒測試優點在于要求測試人員去學習軟件的實現,可以檢測代碼中的每條分支和路徑,揭示隱藏在代碼中的錯誤,對代碼的測試比較徹底。
  1. 黑盒測試的時候,測試人員不需要接觸源代碼。是從App層面對其行為以及UI的正確性進行驗證,黑盒測試由iOS測試完成。
  2. 自動化測試的 定義 : 自動化測試就是寫一些測試代碼,用代碼代替人工去完成模塊和業務的測試。

測試金子塔如下 : <img src="/Users/yangchaojie/Downloads/工作/記錄/md文件/329784-ff379d7a7a202665.png" width = "300" height = "200" alt="圖片名稱" align=center />

自動化測試的 優點:

  • 1.優點 : 測試速度快,避免重復性的工作

  • 2.避免regression,讓開發更有信心去修改和重構代碼

  • 具有一致性。

  • 有了自動化測試,持續集成(CI)會變得更可靠。
    迫使開發人員寫出更高質量的代碼。(自動化測試不通過,代碼不允許合并)

缺點:

  • 1.開發和維護成本高。
  • 2.不能完全替代人工測試。
  • 3.無法完全保證測試的準確性 -
  • 自動化測試 的 框架

具體內容查看此鏈接

<img src="/Users/yangchaojie/Downloads/工作/記錄/md文件/1054552-c48679f96e8c1527.jpg" width = "500" height = "200" alt="圖片名稱" align=center />

1. Appium 框架的 使用

  • 原理

    1. Appiums是由Nodejs編寫的,集成了現有優秀框架,以Selenium WebDriver的協議統一起來,
      遵循RESTful設計風格web 服務器,它接受客戶端的連接,接收客戶端的命令,在手機設備上執行命令,然后通過HTTP的響應收集命令執行的結果。
      <img src="/Users/yangchaojie/Downloads/工作/記錄/md文件/iphone.png" width = "200" height = "400" alt="圖片名稱" align=center />

簡單 解釋 為 對于App來說就是一個Server,基于 WebDriver JSON wire protocol 對實際的UI操作庫進行了封裝,并且暴露出RESTFUL的接口。然后測試代碼通過HTTP請求的方式,來進行實際的測試。

Appium iOS比較慢的原因:

(1)python client <====> Http Server

(2)Http Server <====> Appium Server

(3)Appium Server <====> bootstrap 耗時長

(4)bootstrap <====> UIAutomation 耗時長
中間層較多,各種通信傳輸是非常耗時。

  • WebDriverAgent

<img src="/Users/yangchaojie/Downloads/工作/記錄/md文件/01f1f5fa3e36f4ce4c1b4af186b76bfe.png" width = "600" height = "200" alt="圖片名稱" align=center />
(1)WebDriverAgent封裝的是XCTest,而XCTest框架是蘋果在xcode5提出的,在Xcode7中已經支持UI功能測試,facebook于2015年提出了WebDriverAgent,可支持真機和模擬器。

(2)WebDriverAgent Api支持W3C WebDriver Spec設計風格。通過命令行或者xcode啟動testRunner以后,會在手機端安裝一個WebDriverAgentRunner,類似于appium中的bootstrap,可以接收client端發送的http請求,然后將請求轉義為XCTest的命令,在手機端進行操作,并且操作結果再以Json的形式反饋給client端進行匯總。

webDrierAgent
WebDriverAgent相對于Appium有著很大優勢:

  1. 支持一臺 mac 連接多臺設備進行測試(走 xcodebuild ,不走 instruments)
  2. 任意應用的 UI 測試,是任意
  3. 支持跨應用(任意界面都能控制)
    4 .控件定位方便,直接通過ip:port/inspector查看,無需啟動Appium GUI查看
    5.親測比Appium執行速度快
    最重要的是蘋果官方將UIAutomation標識為廢棄,XCTest是未來的趨勢,必然會發揮更大的作用

WebDriverAgent 取代 UIAutomation 或者 XCUITesting 做為 Appium 底部驅動

  • 配置

appium Getting Start

WebDriverAgent 配置

  • demo
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容