Flutter整合測試
Flutter官方對Flutter應用測試型別做了三個階段劃分,分別為Unit(單元)測試、Widget(元件)測試、Integration(整合)測試。
按照維護成本來看的話從左到右依次增高,按照投資回報方面看的話依次是Widget>Integration>Unit,而作為測試人員來說,我們主要關注點在整合測試這一型別。
官網對於整合測試的定義:
“Unit(單元)測試和Widget(元件)測試對於測試單個類、方法或者元件來講非常方便,然而他們通常不會將各個部分作為整體一起進行測試,又或者是想要獲取應用在真實裝置上的表現,此時我們就需要整合測試了。”
FlutterDriverFlutterDriver提供API去測試執行在真實裝置和模擬器裡面的Flutter應用,執行時會和測試指令碼在不同的程序中,可以簡單認為就是Flutter版本的Selenium WebDriver
新增FlutterDriver依賴
上一篇文章有介紹Flutter工程的目錄結構,其中pubspec.yaml檔案可以對依賴和配置進行管理,類似於Maven工程的pom.xml。找到dev_denpendencies新增如下配置
其中
flutter_driver: sdk: flutter配置表示新增FlutterDriver依賴test: any配置表示新增測試庫,因為我們寫TestCase需要用到裡面的方法和斷言整合測試步驟01、建立測試App
需要注意的是:預設demo沒有給這些元素加上標識,而且flutter中不支援ID,一般通過Key屬性進行標識(對應定位方法為valueKey)。
02、建立test指令碼
1、在工程根目錄下建立test_driver資料夾
2、建立xx.dart檔案:用於啟動執行應用
3、建立xx_test.dart檔案:Test指令碼檔案
官方解釋為什麼需要建立這兩支檔案的原因:
整合測試中TestCase和應用執行在不同的程序中,所以需要test_driver目錄裡有兩個檔案分別用來執行應用和執行TestCase。
03、開啟Flutterdriver擴充套件支援
在xx.dart檔案中新增如下程式碼:
04、編寫測試指令碼
在xx_test.dart檔案中新增如下程式碼:
05、執行測試
1、連線裝置,我們可以選擇
在Windows上測試Android裝置/模擬器在MacOs上測試Android裝置/模擬器 or IOS裝置/模擬器2、在專案的根目錄下開啟命令終端
命令解釋:
構建目標App包並將其安裝到裝置/模擬器中啟動目標App執行xx_test.dart執行效果:關於FlutterDriver實現自動化測試就介紹到這裡,下篇給大家介紹利用appium-flutter-driver測試Flutter應用。