1. 程式人生 > >React-Native移動應用自動化測試框架Detox簡介

React-Native移動應用自動化測試框架Detox簡介

經過開發的鼎力相助,終於把RN的自動化測試框架研究通過了,目前環境已搭建並結合APP執行第一個Demo成功了。

1框架介紹(Detox)

它是為移動端APP打造的灰盒端到端自動化測試框架。

可用於React-Native開發的APP,使用js測試框架test或mocha來執行相應的測試指令碼。通過對RN程式包中package.json增加Detox相關配置,並在RN程式包中增加測試案例資料夾e2e(在其中增加測試案例)實現測試用例的編寫和執行。

2環境搭建 (以下以在ios中執行自動化測試案例為例)

2.1環境準備:

Mac with macOS (macOS El Capitan 10.11以上)

Xcode 8.3+ with Xcode command line tools

2.2 安裝步驟:

2.2.1 安裝依賴

2.2.1.1 安裝最新版本的homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.2.1.2 安裝Node.js

brew update && brew install node

brew tap wix/brew

使用applesimutils來完成呼叫Xcode中執行的IOS模擬器,所以前提是必須先在Xcode中將模擬器調起。

2.2.1.4 安裝detox-cli

npm install -g detox-cli

2.2.1.5 安裝 react-native-cli

npm install -g react-native-cli

2.2.1.6 安裝

2.2.2 安裝用例執行框架(Mocha或Jest,都是js測試框架,目前使用的是前者)

2.2.2.1 安裝jest工具(以下演示以jest為例)

npm install jest --save-dev

2.2.2.2 安裝mocha工具

npm install mocha --save-dev

2.2.3 安裝Detox到專案

若你的專案是RN專案,則可以使用如下口令完成Detox安裝:

npm install detox --save-dev

若為原生安卓或IOS的專案,則需要在專案目錄下的packages.json更新如下內容換句話說也支援安卓和IOS專案的自動化測試

{

  "name": "<your_project_name>",

  "version": "0.0.1"

}

然後再安裝Detox

npm install detox --save-dev

3 更新配置檔案package.json

需要更新專案根目錄下的package.json,把如下程式碼插入其中。

"detox": {

  "configurations": {

    "ios.sim.debug": {

      "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/example.app",

      "build": "xcodebuild -project ios/example.xcodeproj -scheme example -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",

      "type": "ios.simulator",

      "name": "iPhone 7"

    }

  }

}

在如上程式碼中,得把example使用實際的專案名稱(這裡是ClaimPlatform_RN)替代,見下圖。

,在binaryPath中

example.app也應被ClaimPlatform_RN.app替代。在bulid這項中example.xcodeproj也被做相應的替代,變成ClaimPlatform_RN.xcodeproj,-scheme example變成 -scheme ClaimPlatform_RN

如果IOS的app咋workspace資料夾中,則得使用 use -workspace ios/example.xcworkspace 來代替專案,變成 use -workspace ios/laimPlatform_RN.xcworkspace instead of -project

確保配置檔案中的模擬器是已經被安裝並處於可用狀態(如以上配置中的iphone7 是否可以被Xcode調起)。亦可通過xcrun simctl口令檢查可使用的模擬器是否包含配置中的模擬器。

附修改後package.json的detox配置(只包含了IOS的,也可補充Android的):

"detox": {

    "test-runner": "jest",

    "specs": "e2e",

    "configurations": {

      "ios.sim.release": {

      "binaryPath":"ios/build/Build/Products/Debug-iphonesimulator/ClaimPlatform_RN.app",

        "build": "export RCT_NO_LAUNCH_PACKAGER=true && xcodebuild -workspace ios/ClaimPlatform_RN.xcworkspace -scheme ClaimPlatform_RN -configuration Release -sdk iphonesimulator -derivedDataPath ios/build -quiet",

        "type": "ios.simulator",

        "name": "iPhone 7"

      },

      "ios.sim.debug": {

        "binaryPath":"ios/build/Build/Products/Debug-iphonesimulator/ClaimPlatform_RN.app",

        "build": "xcodebuild -workspace ios/ClaimPlatform_RN.xcworkspace -scheme ClaimPlatform_RN -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",

        "type": "ios.simulator",

        "name": "iPhone 7"

      }

    }

  },

Plus:在MAC環境中執行用例前,必須先通過Xcode調起該模擬器

4 編寫用例

4.1 構建用例資料夾

若選中mocha做為測試框架,則需要輸入如下口令即可在專案當前根目錄下

自動生成e2e資料夾,並完成對mocha執行的簡單配置。

detox init -r mocha

同理,選用jest,則執行如下口令:

detox init -r jest

4.2 編寫用例

     開始編寫第一個演示Demo,這裡以RN的 APP首頁上的輸入手機號碼定位為例子。4.2.1 前期準備:需要在前端程式碼中給該輸入文字框元素增加一個全域性定位屬性testID,見下

4.2.2 編寫用例

以開啟IOS的APP找到首頁上的手機號輸入框為例。describe相當於testsuit,後面跟的是testsuit名稱(建議與專案名稱一致);it相當於testcase,後面跟的是testcase名稱。具體用例見下圖。

構建APP並執行用例

5.1 構建APP

detox build --configuration ios.sim.debug (debug模式)

detox build --configuration ios.sim.release (release模式)

5.2 執行用例

detox test --configuration ios.sim.debug (debug模式)

detox test --configuration ios.sim.release (release模式)

相關推薦

React-Native移動應用自動化測試框架Detox簡介

經過開發的鼎力相助,終於把RN的自動化測試框架研究通過了,目前環境已搭建並結合APP執行第一個Demo成功了。 1框架介紹(Detox) 它是為移動端APP打造的灰盒端到端自動化測試框架。 可用於React-Native開發的APP,使用js測試框架test或moc

移動APP自動化測試框架對比

通過 友好 函數 漂亮 開發人員 dia ons ui組件 end 轉自微信公眾號:騰訊移動品質中心TMQ 移動APP的UI自動化測試長久以來一直是一個難點,難點在於UI的”變”, 變化導致自動化用例的大量維護。從分層測試的角度,自動化測試應該逐層進行。最大量實現自動化測試

從零開始搭建Detox自動化測試框架測試React Native (IOS/Andriod)也許是全網最全的教程 持續更新中

構建APP並執行用例 構建APP 編譯 debug模式 detox build --configuration ios.sim.debug release模式 detox build --configuration ios.sim.release 5.2 執

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary介紹

request rri port wan dpa mage simulator mac uninstall 在使用AppiumLibrary庫時,需要預先安裝好Appium自動化工具,Appium官網地址為:http://appium.io/ Appium的GitHub地

RobotFramework自動化測試框架-移動手機自動化測試Click A Point關鍵字的使用

pla com version -1 oca users button main localhost Click A Point關鍵字用來模擬點擊APP界面上的一個點,該關鍵字接收兩個三個參數[ x=0 | y=0 | duration=100 ],x和y代表的是點的坐標位

移動端Appium自動化測試框架的優勢

眾所周知,現在市面上的移動端作業系統已被Android和IOS佔領,其中Android的份額更是在80%以上。那麼面對市面上林林總總的自動化測試框架和工具,為什麼說Appium在自動化測試框架的統治級優勢呢,下面先看一下各大主流框架的對比及優勢。  一、主流框架對比   下面對比了市面上主流

基於webdriver的web UI自動化測試框架(系統架構+測試指令碼應用架構)

1.首先是自動化測試系統架構如下圖: 2.測試指令碼的應用架構: 3實際應用後的工程結構: 框架的配置檔案(只是簡單的用properties檔案) #------------------# #  測試框架配置 #------------------# #

自動化測試框架Appium的應用

1. Configure SuiteConfig.json This file restores global environment variables for the server. The file is located at /$(YOUR_PROJECT_ROOT)/SuiteConfig.j

ApiTesting全鏈路介面自動化測試框架 - 實戰應用

場景一、新增公共配置 我們在做自動化開始的時候,一般有很多公共的環境配置,比如host、token、user等等,如果這些放在用例中,一旦修改,將非常的不便、麻煩(尤其切換環境)。 所以這裡我們提供了apiConfig.yml 檔案用於存放公共介面配置,預設會根據第一個介面資料包,解析儲存 host 和 he

android常用自動化測試框架

window 自動 瀏覽器 資料 對比 移動 ppi des 選擇 目錄: Monkey MonkeyRunner Instrumentation UiAutomator Espresso Selendroid Robotium Athrun Appi

python專項測試——Android App自動化測試框架

selenium sdk str ase val 測試環境 self ron app自動化 1 為什麽需要框架? 代碼混亂,難閱讀; 重復編碼,效率低;需求變化,難維護; 一 自動化實例 1 準備測試的app;準備測試環境;實現腳本; 2 測試app:只有登錄功能

測評:華為最新移動應用/APP測試工具MobileTest

根據 將在 exce 黑邊 測試工具 導致 效率 顯示 get 一、目前移動應用/App的測試痛點及可選方案 移動互聯網市場進入下半場,同質化競爭激烈,平均獲客成本增加。屏幕不適配、閃退、無響應、UI異常等兼容性問題嚴重影響用戶體驗,影響用戶轉化率和用戶粘性。如何解決這些問

基於C#實現的自動化測試框架:發布自動觸發自動化回歸測試

exc 時間流 測試用例 出現 服務器 text types filter txt 接口自動化測試用例完成以後,以前都是發布以後手動運行測試用例。雖然手動運行下腳本也就是一個F5的事情,但是離自動化測試的標準差得很遠。這兩天有了個大膽的想法,想要實現以下發布時直接觸發自動化

RobotFramework自動化測試框架的基礎關鍵字(二)

速查 語言 left 自動化 logs python語言 添加 src bsp 1.1.1 如何快速查詢某一個關鍵字的API說明 鼠標選中我們關鍵字,同時按住Ctrl+Alt鍵,即可出來該關鍵字的幫助API以及使用示例 1.1.2 如何快速補全

Eclipse+TestNG搭建接口自動化測試框架

eclipse 資源分享 由於 myeclipse 配置文件 需要 globals setting 做了 一、環境安裝 1、前提 安裝好jdk 配置好Java環境變量 安裝Eclips 這些網上都有,就不再詳細介紹。 資源分享鏈接:http://pan.baidu.com

RobotFramework自動化測試框架的基礎關鍵字(五)

選擇 作用 image val 結果 run comm 意思 框架 1.1.1 Run Keyword If判斷的使用 Run Keyword If是一個常用的用來做邏輯判斷的關鍵字,意思是如果滿足了某一個判斷條件,然後就會執行關鍵字,我們對list3中放入0

基於python的接口自動化測試框架

urn __name__ exce 文件格式 圖片 XML pla main tex 公司內部的軟件采用B/S架構,大部分是數據的增刪改查,由於還在開發階段,所以UI界面的變化非常快,難以針對UI進行自動化測試,那樣會消耗大量的精力與時間維護自動化腳本。針對此種情況,針對接

Selenium自動化測試框架的搭建

技術 閱讀 中國 有一個 base 這一 們的 是否 hat 說 起自動化測試,我想大家都會有個疑問,要不要做自動化測試? 自動化測試給我們帶來的收益是否會超出在建設時所投入的成本,這個嘛別說是我,即便是高手也很難回答,自動化測試的初衷是美好的,而測試工程師

自動化測試框架

目錄 源文件 綜合素質 pos post 文件 簡單 單位 文件格式 1、開發工具開發語言和使用框架:Java、Selenium2集成開發環境: Eclipse https://www.jetbrains.com/idea/ jetbrains 大法好分布式監控平臺: Je

解決TestNG 自動化測試框架如何安裝到eclipse中

sem err dmr nco mwl wql urn ycm vro TestNG 自動化測試框架如何安裝到eclipse中 ??? 解釋: TestNG 其實就是一個插件(個人理解為eclipse 中的插件 ) 開門見山---寫步驟 :