成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用macaca進行移動端hybird自動化測試(二)

移動開發 自動化
macaca是阿里開源的基于Node.js開發的自動化測試工具,支持native,hybird,moblie web,關于macaca具體的內容參見官網macaca.macaca是如何驅動自動化測試的呢?事實上macaca和appium在架構和一些應用層面有很多相似的地方。

Macaca

macaca是阿里開源的基于Node.js開發的自動化測試工具,支持native,hybird,moblie web,關于macaca具體的內容參見官網macaca.

macaca是如何驅動自動化測試的呢?事實上macaca和appium在架構和一些應用層面有很多相似的地方。

作為client的我們可以使用不同語言去編寫測試腳本,其中測試腳本遵循webdriver協議,client向測試框架啟動的server發送http請求。正因為client和server是基于http進行通訊的,因此client可以支持不同的編程語言。server通過解析HTTP的request,然后調用IOS提供的UIAutomation庫來進行模擬點擊等的操作,操作完成后移動設備會將操作結果返回給server,然后server將這個操作結果返回給client。

?有提到過webdriver協議:

其實它就是一層基礎的協議規范。正是因為這樣的協議存在一些自動化測試框架可以使用多種語言編寫測試腳本。它提供了web頁面操作的相關規范,比如元素的定位,瀏覽器原生事件的操作,還有獲取DOM元素屬性等一系列的方法。不管你用什么語言編寫測試腳本的話,都應該按照這個協議規范來。WebDriver 通過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器。WebDriver 針對各個瀏覽器而開發,取代了嵌入到被測 Web 應用中的 JavaScript。與瀏覽器的緊密集成支持創建更高級的測試,避免了JavaScript 安全模型導致的限制。除了來自瀏覽器廠商的支持,WebDriver 還利用操作系統級的調用模擬用戶輸入。webDriver 支持了所有的主流瀏覽器,同時還支持了Iphone和Android的移動應用測試。

接下來就帶著大家一步一步使用macaca進行進行自動化測試:

step 1

全局安裝macaca的cli,如果覺得比較慢,就換淘寶的cnpm鏡像吧。

  1. npm install macaca -g 

安裝完成后可以輸入

  1. //查看cli的提供其他的功能 
  2.     macaca -h   
  3.  
  4.     //用以查看當前的環境配置 
  5.     macaca doctor   
  6.      
  7.     //用以單獨啟動一個webdriver server 
  8.     macaca server 
  9.      
  10.     //啟動測試 
  11.     macaca run  

現在輸入macaca doctor:

在Android checklist里面出現了2條紅色的提示文案,說明這2個選項沒有配置完成。我現在是以IOS為例,暫且不管這2個和Andriod相關的配置。不清楚的可以google。其中在IOS checklist當中:出現了Xcode和ios_webkit_debug_proxy.

首先你需要通過app store安裝Xcode。全局安裝ios_webkit_debug_proxy這個包,這個包用于測試ios的webview:

  1. brew install ios-webkit-debug-proxy 

此外,還需要全局安裝ios-driver:

  1. npm i macaca-ios -g 

這樣準備好了基礎的測試套件。接下來你可以克隆macaca提供的官方示例,其中包括IOS的app和相關的測試腳本,對照著官文文檔感受下大致的流程:

  1. git clone https://github.com/macacajs/macaca-test-sample.git --depth=1 

接下來進行自己的測試工作:

因為我是前端開發人員,要測試native里面的webview。首先讓IOS的同學幫忙打包一個.app格式的應用,并壓成zip格式的文件。PS:打包的時候選用debug模式。

準備好了原材料,先讓我們停一停。做UI測試的話,要模擬用戶各種操作,那么必須得知道native應用上不同界面的元素,就像獲取html里面的DOM節點一樣。因為macaca提供了通過Xpath去獲取native頁面上不同的元素節點的API。因此可以通過這種方式。

macaca提供了app-inspector這樣一個使用樹狀態結構查看UI布局,自動生成XPath的工具。

  1. npm install app-inspector -g 

安裝完成后,通過macaca-cli啟動你的IOS模擬器,運行你的應用。

然后通過app-inspector啟動UI檢測工具,

  1. app-inspector -u YOUR-DEVICE-ID 

獲取uuid的方式:

命令行輸入:

  1. xcrun simctl list 

這行命令會列出你的所以模擬器信息,里面有類似 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 的代碼,就是模擬器UDID,選擇當前模擬器狀態是Booted的那個。

通過app-inspector啟動這個工具后,打開在Chrome里面打開命令行里面提示的瀏覽器地址,這樣在瀏覽器上就能看到在native里面打開的ios頁面。

因為我要測試webview的頁面,因此native的頁面的所有元素節點通過app-inspector這個工具去獲取Xpath,然后編寫測試腳本模擬用戶的操作,一步一步的進入到webview頁面。

在我測試的應用當中,從app打開到進入要測試的webview頁面的測試腳本就變成了:

  1. .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeButton[1]'
  2.     .click() 
  3.     //用戶名輸入 
  4.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeTextField[1]'
  5.     .sendKeys(username) 
  6.     //密碼輸入 
  7.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[3]/XCUIElementTypeSecureTextField[1]'
  8.     .sendKeys(password
  9.     .sendKeys('\n'
  10.     //登錄按鈕 
  11.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeButton[2]'
  12.     .click() 
  13.     //更多按鈕 
  14.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeImage[1]/XCUIElementTypeButton[2]'
  15.     .click() 
  16.     .sleep(1000) 
  17.     .swipe(200, 400, 200, 100, 500) 
  18.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeCollectionView[1]/XCUIElementTypeCell[10]'
  19.     .click() 
  20.     .sleep(1000) 
  21.     .waitForElementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeScrollView[1]/XCUIElementTypeOther[2]'
  22.     .click() 
  23.     .sleep(1000) 

這樣完成了native進入到webview頁面的所有操作。

接下來就是webview的模擬操作啦。放到下一節來講吧。

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2016-10-26 22:07:06

macaca自動化測試javascript

2016-10-26 22:24:00

macaca自動化測試javascript

2016-10-26 22:29:13

macaca自動化測試javascript

2024-11-21 15:24:49

2009-08-19 09:00:48

單元測試框架自動化測試

2020-08-03 15:40:57

Web自動化工具測試

2017-04-21 07:41:37

iOS自動化測試容器

2011-05-16 15:36:00

軟件測試

2022-01-14 11:51:00

測試工具自動化

2020-10-10 06:30:07

PythonSEO自動化測試

2023-01-09 15:20:16

2022-02-17 10:37:16

自動化開發團隊預測

2012-02-27 17:34:12

Facebook自動化

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2013-05-16 10:58:44

Android開發自動化測試

2014-04-16 14:15:01

QCon2014

2011-12-23 17:09:57

自動化測試

2021-06-30 19:48:21

前端自動化測試Vue 應用

2012-12-24 22:54:31

2023-11-21 22:48:50

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色婷婷综合久久久久中文一区二区 | 久久免费国产视频 | 国产精品久久性 | 欧美一级电影免费 | 高清视频一区 | 亚洲精品一区二区二区 | 亚洲电影第1页 | 欧美日韩成人一区二区 | av一二三四 | 欧美1级| 久久www免费人成看片高清 | 91久久精品国产91久久 | 久久精品中文字幕 | 在线成人福利 | 国产二区视频 | 婷婷色国产偷v国产偷v小说 | 99亚洲 | 最近免费日本视频在线 | 亚洲高清网 | 一二三在线视频 | 中文字幕久久久 | 黄网站在线播放 | 国产成人精品一区 | 户外露出一区二区三区 | 在线视频亚洲 | 美国一级黄色片 | 一级毛片观看 | 一区二区三区av夏目彩春 | 日韩av一二三区 | 精品国产91 | 日本午夜免费福利视频 | 在线免费观看a级片 | 在线成人免费视频 | 成人老司机 | 成人av一区二区在线观看 | 麻豆国产精品777777在线 | 国产91在线 | 亚洲 | 日本精品在线观看 | 91看片网 | 伊人春色在线观看 | 久一久|