作者:說說軟件測試那些事兒
前言
UI測試是測試應用中的各種交互是否達到了實現(xiàn)的效果。常用的UI測試框架有Espresso和UIAutomator。
今天給大家分享5個可能不曾聽過的新自動化測試框架裹芝。
1. Kaspresso
Kaspresso是一個基于Espresso和UIAutomator構建的測試自動化框架。并針對Espresso的一些已知缺點進行優(yōu)化:
解決flakiness問題娜汁;
解決Espresso不支持adb問題嫂易;
優(yōu)化代碼可讀性;
以如下示例說明代碼可讀性:
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()
}
}
}
由此可見掐禁,測試代碼精簡度有很大提升怜械。
同時,相對于傳統(tǒng)的UIAutomator傅事,測試速度上也有很大的提升缕允。
綜上概括:
Kaspresso優(yōu)點:
與所有其他測試自動化框架相比,通過復雜的策略提高了測試的穩(wěn)定性蹭越;
測試運行速度提高障本;
抽象化并因此具有更好的測試可維護性;
可以處理關閉系統(tǒng)彈框响鹃;
開源驾霜,Github上有800多個Star;
Kaspresso缺點:
DSL進一步提高了抽象水平买置,學習和熟悉入手的成本將會有所增加粪糙;
DSL有時會導致代碼混亂;
因為是卡巴斯基出品堕义,部分文檔和issues都是俄文猜旬,對于大部分同學脆栋,英文閱讀已經是艱難倦卖,俄語將會是災難;
2. Barista
Barista也是基于Espresso構建的測試自動化框架椿争。通過提供簡化且可視的API解決Espresso模板冗長的問題怕膛;同時,Barista增加重試策略秦踪,可以設置測試case執(zhí)行失敗后的重試次數(shù)褐捻,減少Espresso的flakiness問題。
Barista優(yōu)點:
通過自動重試和自動滾動提高了穩(wěn)定性椅邓;
附加的抽象級別(Page對象)有效提高可讀性柠逞;
完備的文檔有效降低學習成本;
開源景馁,Github上有1200多個Star板壮;
Barista缺點:
Idlingresources仍然必須手動實現(xiàn);
3. BusyBee
和前面的Kaspresso一樣合住,BusyBee也是基于Espresso構建的绰精,提供了CountingIdlingResource的替代方法撒璧。同時,BusyBee通過跟蹤Java對象笨使,字符串或者ID來記錄當前運行的進程卿樱,如果出現(xiàn)超時,則輸出正在運行的進程硫椰,降低測試和開發(fā)調試成本繁调。
BusyBee優(yōu)點:
簡化實現(xiàn),可以簡化Idlingresources的處理靶草;
開源涉馁,Github上有150多個Star;
BusyBee缺點:
小型工具爱致,功能全面性上難以和Kaspresso烤送,Barista相比較;
4. Repeato
Repeato是適用于Android的無代碼自動化測試框架糠悯,通過動作記錄器錄制測試用例帮坚,通過回放實現(xiàn)case執(zhí)行,也可以通過添加adb等終端命令執(zhí)行互艾,類似于國內的solopi和airtest试和。
測試用例錄制示例:
測試用例回放示例:
Repeato優(yōu)點:
非常易于使用,可供非開發(fā)人員使用纫普;
Repeato不需要訪問應用程序的源代碼阅悍,降低使用門檻;
使用快速便捷昨稼,安裝軟件僅需幾分鐘节视;
提供可視化報告,簡化故障排除假栓;
Repeato缺點:
沒有開源寻行;
付費,擴展版本是商業(yè)版本(每月49歐元)匾荆;
5. Waldo
?Waldo是一個云測試平臺拌蜘,類似于國內的幾大云測廠商,使用便捷簡單牙丽。Waldo通過改動前后版本的縱向對比简卧,直觀輸出問題UI的對比,提高問題發(fā)現(xiàn)和解決的效率烤芦。
Waldo優(yōu)點:
界面非常清晰直觀举娩,便于用戶使用;
Waldo缺點:
沒有開源;
價格昂貴晓铆,每個月1999美元的費用將大部分國內用戶拒之門外勺良;
不支持數(shù)據(jù)驅動測試和復雜的測試用例;
目前不支持Android骄噪,官網(wǎng)表示即將推出尚困;
結語
業(yè)界中各個自動化測試框架都有明顯的優(yōu)點和缺點,大家可以依據(jù)自己項目的實際情況選擇合適的方案链蕊,同時也可以依據(jù)開源項目完成自己的定制化修改事甜。
愿你我相遇,皆有所獲滔韵! 歡迎關注微信公眾號:程序員一凡?
1.免費領取一份216頁軟件測試工程師面試寶典文檔資料逻谦。
?2.軟件測試學習路線以及相對應的視頻學習教程免費分享!