前言

    UI测试是测试应用中的各种交互是否达到了实现的效果。常用的UI测试框架有Espresso和UIAutomator。    今天给大家分享5个可能不曾听过的新自动化测试框架。

1. Kaspresso

6f470f4dbfdf27eeb74fed1752b8a29c.png

    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测试示例写法:     
@Testfun testFirstFeature() {    mainScreen {        logoutButton {            isVisible()            click()        }    }}
    由此可见,测试代码精简度有很大提升。    同时,相对于传统的UIAutomator,测试速度上也有很大的提升。55b0e754a22326f6c1ecfa69b89aee5c.gif    综上概括:    Kaspresso优点:
  • 与所有其他测试自动化框架相比,通过复杂的策略提高了测试的稳定性;

  • 测试运行速度提高;

  • 抽象化并因此具有更好的测试可维护性;

  • 可以处理关闭系统弹框;

  • 开源,Github上有800多个Star;

   Kaspresso缺点:
  • DSL进一步提高了抽象水平,学习和熟悉入手的成本将会有所增加;

  • DSL有时会导致代码混乱;

  • 因为是卡巴斯基出品,部分文档和issues都是俄文,对于大部分同学,英文阅读已经是艰难,俄语将会是灾难;

2. Barista

da8d79dec310b1af6d548e27b836f67a.png    Barista也是基于Espresso构建的测试自动化框架。通过提供简化且可视的API解决Espresso模板冗长的问题;同时,Barista增加重试策略,可以设置测试case执行失败后的重试次数,减少Espresso的flakiness问题。    Barista优点:
  • 通过自动重试和自动滚动提高了稳定性;
  • 附加的抽象级别(Page对象)有效提高可读性;
  • 完备的文档有效降低学习成本;
  • 开源,Github上有1200多个Star;
    Barista缺点:
  • Idlingresources仍然必须手动实现;

3. BusyBee

2d7556db26a53f50a2a4638a4682daf0.png    和前面的Kaspresso一样,BusyBee也是基于Espresso构建的,提供了CountingIdlingResource的替代方法。同时,BusyBee通过跟踪Java对象,字符串或者ID来记录当前运行的进程,如果出现超时,则输出正在运行的进程,降低测试和开发调试成本。    BusyBee优点:
  • 简化实现,可以简化Idlingresources的处理;

  • 开源,Github上有150多个Star;

    BusyBee缺点:
  • 小型工具,功能全面性上难以和Kaspresso,Barista相比较;

4. Repeato

1b3991dfd39e72f093afccc7e1850656.png    Repeato是适用于Android的无代码自动化测试框架,通过动作记录器录制测试用例,通过回放实现case执行,也可以通过添加adb等终端命令执行,类似于国内的solopi和airtest。    测试用例录制示例:0ea91aa5473d81d2283ad24422f384ac.gif    测试用例回放示例: a54edb8c86263e14bdafa8c865242588.gif    Repeato优点:
  • 非常易于使用,可供非开发人员使用;

  • Repeato不需要访问应用程序的源代码,降低使用门槛;

  • 使用快速便捷,安装软件仅需几分钟;

  • 提供可视化报告,简化故障排除;

    Repeato缺点:
  • 没有开源;

  • 付费,扩展版本是商业版本(每月49欧元);

5. Waldo

8e244efd1759fa91a4720859f48dd921.png    Waldo是一个云测试平台,类似于国内的几大云测厂商,使用便捷简单。Waldo通过改动前后版本的纵向对比,直观输出问题UI的对比,提高问题发现和解决的效率。 47e1db12003905931897d0eef48753e3.png    Waldo优点:
  • 界面非常清晰直观,便于用户使用;

    Waldo缺点:
  • 没有开源;

  • 价格昂贵,每个月1999美元的费用将大部分国内用户拒之门外;

  • 不支持数据驱动测试和复杂的测试用例;

  • 目前不支持Android,官网表示即将推出;

结语

    业界中各个自动化测试框架都有明显的优点和缺点,大家可以依据自己项目的实际情况选择合适的方案,同时也可以依据开源项目完成自己的定制化修改。搜狗测试微信号:Qa_xiaoming

5fe04e0d9000393f05969d542e1c5fb1.png

搜狗测试QQ粉丝群:459645679

0f66d7eed5cab2902594f7856be1a61f.png

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐