作者:說(shuō)說(shuō)軟件測(cè)試那些事兒
前言
UI測(cè)試是測(cè)試應(yīng)用中的各種交互是否達(dá)到了實(shí)現(xiàn)的效果。常用的UI測(cè)試框架有Espresso和UIAutomator。
今天給大家分享5個(gè)可能不曾聽(tīng)過(guò)的新自動(dòng)化測(cè)試框架。
1. Kaspresso

Kaspresso是一個(gè)基于Espresso和UIAutomator構(gòu)建的測(cè)試自動(dòng)化框架。并針對(duì)Espresso的一些已知缺點(diǎn)進(jìn)行優(yōu)化:
解決flakiness問(wèn)題;
解決Espresso不支持adb問(wèn)題;
優(yōu)化代碼可讀性;
以如下示例說(shuō)明代碼可讀性:
Espresso測(cè)試示例寫(xiě)法:
@Testfunlogout(){
onView(withId(R.id.logoutButton))
.check(ViewAssertions.matches(
ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
onView(withId(R.id.logoutButton)).perform(click())
}
Kaspresso測(cè)試示例寫(xiě)法:
@Test
fun testFirstFeature() {
mainScreen {
logoutButton {
isVisible()
click()
}
}
}
由此可見(jiàn),測(cè)試代碼精簡(jiǎn)度有很大提升。
同時(shí),相對(duì)于傳統(tǒng)的UIAutomator,測(cè)試速度上也有很大的提升。

綜上概括:
Kaspresso優(yōu)點(diǎn):
與所有其他測(cè)試自動(dòng)化框架相比,通過(guò)復(fù)雜的策略提高了測(cè)試的穩(wěn)定性;
測(cè)試運(yùn)行速度提高;
抽象化并因此具有更好的測(cè)試可維護(hù)性;
可以處理關(guān)閉系統(tǒng)彈框;
開(kāi)源,Github上有800多個(gè)Star;
Kaspresso缺點(diǎn):
DSL進(jìn)一步提高了抽象水平,學(xué)習(xí)和熟悉入手的成本將會(huì)有所增加;
DSL有時(shí)會(huì)導(dǎo)致代碼混亂;
因?yàn)槭强ò退够銎?,部分文檔和issues都是俄文,對(duì)于大部分同學(xué),英文閱讀已經(jīng)是艱難,俄語(yǔ)將會(huì)是災(zāi)難;
2. Barista

Barista也是基于Espresso構(gòu)建的測(cè)試自動(dòng)化框架。通過(guò)提供簡(jiǎn)化且可視的API解決Espresso模板冗長(zhǎng)的問(wèn)題;同時(shí),Barista增加重試策略,可以設(shè)置測(cè)試case執(zhí)行失敗后的重試次數(shù),減少Espresso的flakiness問(wèn)題。
Barista優(yōu)點(diǎn):
通過(guò)自動(dòng)重試和自動(dòng)滾動(dòng)提高了穩(wěn)定性;
附加的抽象級(jí)別(Page對(duì)象)有效提高可讀性;
完備的文檔有效降低學(xué)習(xí)成本;
開(kāi)源,Github上有1200多個(gè)Star;
Barista缺點(diǎn):
Idlingresources仍然必須手動(dòng)實(shí)現(xiàn);
3. BusyBee

和前面的Kaspresso一樣,BusyBee也是基于Espresso構(gòu)建的,提供了CountingIdlingResource的替代方法。同時(shí),BusyBee通過(guò)跟蹤Java對(duì)象,字符串或者ID來(lái)記錄當(dāng)前運(yùn)行的進(jìn)程,如果出現(xiàn)超時(shí),則輸出正在運(yùn)行的進(jìn)程,降低測(cè)試和開(kāi)發(fā)調(diào)試成本。
BusyBee優(yōu)點(diǎn):
簡(jiǎn)化實(shí)現(xiàn),可以簡(jiǎn)化Idlingresources的處理;
開(kāi)源,Github上有150多個(gè)Star;
BusyBee缺點(diǎn):
小型工具,功能全面性上難以和Kaspresso,Barista相比較;
4. Repeato

Repeato是適用于Android的無(wú)代碼自動(dòng)化測(cè)試框架,通過(guò)動(dòng)作記錄器錄制測(cè)試用例,通過(guò)回放實(shí)現(xiàn)case執(zhí)行,也可以通過(guò)添加adb等終端命令執(zhí)行,類似于國(guó)內(nèi)的solopi和airtest。
測(cè)試用例錄制示例:

測(cè)試用例回放示例:

Repeato優(yōu)點(diǎn):
非常易于使用,可供非開(kāi)發(fā)人員使用;
Repeato不需要訪問(wèn)應(yīng)用程序的源代碼,降低使用門(mén)檻;
使用快速便捷,安裝軟件僅需幾分鐘;
提供可視化報(bào)告,簡(jiǎn)化故障排除;
Repeato缺點(diǎn):
沒(méi)有開(kāi)源;
付費(fèi),擴(kuò)展版本是商業(yè)版本(每月49歐元);
5. Waldo

?Waldo是一個(gè)云測(cè)試平臺(tái),類似于國(guó)內(nèi)的幾大云測(cè)廠商,使用便捷簡(jiǎn)單。Waldo通過(guò)改動(dòng)前后版本的縱向?qū)Ρ?,直觀輸出問(wèn)題UI的對(duì)比,提高問(wèn)題發(fā)現(xiàn)和解決的效率。

Waldo優(yōu)點(diǎn):
界面非常清晰直觀,便于用戶使用;
Waldo缺點(diǎn):
沒(méi)有開(kāi)源;
價(jià)格昂貴,每個(gè)月1999美元的費(fèi)用將大部分國(guó)內(nèi)用戶拒之門(mén)外;
不支持?jǐn)?shù)據(jù)驅(qū)動(dòng)測(cè)試和復(fù)雜的測(cè)試用例;
目前不支持Android,官網(wǎng)表示即將推出;
結(jié)語(yǔ)
業(yè)界中各個(gè)自動(dòng)化測(cè)試框架都有明顯的優(yōu)點(diǎn)和缺點(diǎn),大家可以依據(jù)自己項(xiàng)目的實(shí)際情況選擇合適的方案,同時(shí)也可以依據(jù)開(kāi)源項(xiàng)目完成自己的定制化修改。
愿你我相遇,皆有所獲! 歡迎關(guān)注微信公眾號(hào):程序員一凡?
1.免費(fèi)領(lǐng)取一份216頁(yè)軟件測(cè)試工程師面試寶典文檔資料。
?2.軟件測(cè)試學(xué)習(xí)路線以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!