序言
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,官网表示即将推出;结语
业界中各个智能化试验架构都有明显的优点和优点,我们可以依据自己项目的实际情况选择合适的方案,同时也可以依据开源项目完成自己的定制化修改。