使用开源自动化测试框架的成功秘诀
21CTO导读:可以确定的是,在今天的大量软件交付中,越来越依赖于通过开源测试框架进行测试自动化。
在社区之前的文章中,曾经介绍过一些自动化测试框架间的一些差异,比如 Appium,Selenium,Calabash,Espresso和XCTest UI。
我们认为对采用开源测试框架成功的重要关键点是有以下三个:
24x7可用以及弹性
高级测试自动化功能
执行后的深度品质分析
在本文中,我们先来谈谈上面的第二项 - 高级测试自动化。
扩展开源框架的测试自动化覆盖范围
支持OS级别的范成大自动化功能非常重要,但如果框架功能支持以下的扩展功能也非常重要:
视觉分析
用户状态测试
完整的系统级控制
支持最新平台
举例说明为什么这些扩展从测试自动化覆盖的角度来看很重要。来看一下使用Espresso 或XCTest UI 来测试应用程序,这两个框架都很优秀,速度快,并且从操作系统级别的角度支持最新功能,但是它不支持完整的系统层别,这限制了测试场景,其中包括传入调用,事件,弹出窗口以及最近的 iOS 10.3 2FA (2因素身份验证)等需要确认有代码传入的文本消息等。
比如,最近谷歌开始对Android的隐私政策实施更严格的条款,它将强制要求提交到Google Play商店的应用,如果使用敏感数据,并要求提供“ 危险的权限 ”,提示用户使用隐私政策和详细的权限列表,以便用户选择接受或者拒绝。
在某些情况下,测试自动化开发人员希望对策略进行额外验证并检查旋转屏幕时的显示方式 - 按钮是否仍然可见?文字内容有被截断吗?
此外,在使用Espresso和/或XCTest UI测试此类应用程序时,该过程需要2个应用程序 - 其中一个是待测应用程序(AUT)。第二个是测试应用程序,它还需要验证应用程序的初始安装是否触发了屏幕操作,并且在执行新测试时,将不用再显示。
综上所述,大多数开源测试框架是不支持可视化测试自动化和自动化分析的。
关于开源测试框架的社区
最后要说的是,开源是关联社区的。如果技术社区不够强大,或者偏向于某个供应商,那么它对终端用户的价值将从功能,适应免费工具等方面一定是削弱的。
在衡量开源社区力量时要考虑的一个重要考量,首先看这些工具的github 有多少分支?有多少贡献者,他们来自哪里?有多少个版本? 结合到以上这些点,让我们比较几个框架,看看谁最好。
Appium:
Selenium:
Apple XCTest UI:
Calabash:
Google Espresso:
从上面的抓图中我们可以看到,这些测试框架的社区都很活跃,人们都在主分支中抽出并积极贡献,每个社区都有很多星级、订阅与评价。
星级衡量对特定存储库的兴趣,如收藏的数量。
观察会测量许多订阅者,以便接收有关该存储库的新讨论的通知。
如果我们考虑贡献者,发布者,分支,评星和观察者等整个衡量标准,我们可以大致了解通过社区获得的支持,兴趣和流量级别。
这样可以让我们更容易选择一个框架,特别是团队在工具选型时存在争议时,上面的数据可以做参考。
小结
一个成功的开源测试自动化框架,可以最大化满足应用程序所需的自动化测试功能,如可视化验证和环境条件,以及该框架维护着一个强大且活跃的开发者社区。
编译:老夏
来源:21CTO