作者:說說軟體測驗那些事兒
前言
UI測驗是測驗應用中的各種互動是否達到了實作的效果,常用的UI測驗框架有Espresso和UIAutomator,
今天給大家分享5個可能不曾聽過的新自動化測驗框架,
1. Kaspresso

Kaspresso是一個基于Espresso和UIAutomator構建的測驗自動化框架,并針對Espresso的一些已知缺點進行優化:
- 解決flakiness問題;
- 解決Espresso不支持adb問題;
- 優化代碼可讀性;
以如下示例說明代碼可讀性:
Espresso測驗示例寫法:
@Testfunlogout(){
onView(withId(R.id.logoutButton))
.check(ViewAssertions.matches(
ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
onView(withId(R.id.logoutButton)).perform(click())
}
Kaspresso測驗示例寫法:
@Test
fun testFirstFeature() {
mainScreen {
logoutButton {
isVisible()
click()
}
}
}
由此可見,測驗代碼精簡度有很大提升,
同時,相對于傳統的UIAutomator,測驗速度上也有很大的提升,

綜上概括:
Kaspresso優點:
- 與所有其他測驗自動化框架相比,通過復雜的策略提高了測驗的穩定性;
- 測驗運行速度提高;
- 抽象化并因此具有更好的測驗可維護性;
- 可以處理關閉系統彈框;
- 開源,Github上有800多個Star;
Kaspresso缺點:
- DSL進一步提高了抽象水平,學習和熟悉入手的成本將會有所增加;
- DSL有時會導致代碼混亂;
- 因為是卡巴斯基出品,部分檔案和issues都是俄文,對于大部分同學,英文閱讀已經是艱難,俄語將會是災難;
2. Barista

Barista也是基于Espresso構建的測驗自動化框架,通過提供簡化且可視的API解決Espresso模板冗長的問題;同時,Barista增加重試策略,可以設定測驗case執行失敗后的重試次數,減少Espresso的flakiness問題,
Barista優點:
- 通過自動重試和自動滾動提高了穩定性;
- 附加的抽象級別(Page物件)有效提高可讀性;
- 完備的檔案有效降低學習成本;
- 開源,Github上有1200多個Star;
Barista缺點:
- Idlingresources仍然必須手動實作;
3. BusyBee

和前面的Kaspresso一樣,BusyBee也是基于Espresso構建的,提供了CountingIdlingResource的替代方法,同時,BusyBee通過跟蹤Java物件,字串或者ID來記錄當前運行的行程,如果出現超時,則輸出正在運行的行程,降低測驗和開發除錯成本,
BusyBee優點:
- 簡化實作,可以簡化Idlingresources的處理;
- 開源,Github上有150多個Star;
BusyBee缺點:
- 小型工具,功能全面性上難以和Kaspresso,Barista相比較;
4. Repeato

Repeato是適用于Android的無代碼自動化測驗框架,通過動作記錄器錄制測驗用例,通過回放實作case執行,也可以通過添加adb等終端命令執行,類似于國內的solopi和airtest,
測驗用例錄制示例:

測驗用例回放示例:

Repeato優點:
- 非常易于使用,可供非開發人員使用;
- Repeato不需要訪問應用程式的源代碼,降低使用門檻;
- 使用快速便捷,安裝軟體僅需幾分鐘;
- 提供可視化報告,簡化故障排除;
Repeato缺點:
- 沒有開源;
- 付費,擴展版本是商業版本(每月49歐元);
5. Waldo

Waldo是一個云測驗平臺,類似于國內的幾大云測廠商,使用便捷簡單,Waldo通過改動前后版本的縱向對比,直觀輸出問題UI的對比,提高問題發現和解決的效率,

Waldo優點:
- 界面非常清晰直觀,便于用戶使用;
Waldo缺點:
- 沒有開源;
- 價格昂貴,每個月1999美元的費用將大部分國內用戶拒之門外;
- 不支持資料驅動測驗和復雜的測驗用例;
- 目前不支持Android,官網表示即將推出;
結語
業界中各個自動化測驗框架都有明顯的優點和缺點,大家可以依據自己專案的實際情況選擇合適的方案,同時也可以依據開源專案完成自己的定制化修改,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232924.html
標籤:其他
上一篇:軟體測驗之安全生產
下一篇:pytest---用例執行引數
