5个新自动化测试框架,你值得了解
2020-11-28 21:02 zouhui 阅读(1599) 评论(0) 编辑 收藏 举报前言
UI测试是测试应用中的各种交互是否达到了实现的效果。常用的UI测试框架有Espresso和UIAutomator。
今天给大家分享5个可能不曾听过的新自动化测试框架。
1. Kaspresso
Kaspresso是一个基于Espresso和UIAutomator构建的测试自动化框架。并针对Espresso的一些已知缺点进行优化:
解决flakiness问题;
解决Espresso不支持adb问题;
优化代码可读性;
以如下示例说明代码可读性:
Espresso测试示例写法:
@Testfun logout() {
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,官网表示即将推出;
结语
业界中各个自动化测试框架都有明显的优点和缺点,大家可以依据自己项目的实际情况选择合适的方案,同时也可以依据开源项目完成自己的定制化修改。
本文转自:搜狗测试
end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!