微信号:infoqchina

介绍:有内容的技术社区媒体

使用Jazz Automation编写自动化测试

2014-01-16 19:27 InfoQ

Jazz Automation是一个测试框架,构建它的目的是为所有类型的Web系统或者静态网站自动化同时加速验收/功能测试。它还能够容易地实现自动化集成测试。以前的时候这种类型的测试需要人工完成,劳动强度大又不准确。借助于自动化测试,公司能够创造高质量的应用程序,创造的产品bug更少,同时又加快了投入市场的速度。Jazz Automation支持以下Web浏览器:IE、Firefox、Safari和Chrome。


Jazz Automation和其他的自动化测试框架不同,它允许测试编写者使用纯英语描述软件的工作原理。

 

大多数自动化测试框架在执行测试之前必须使用JavaRuby这样的语言编程,例如SeleniumCucumberJazz Automation提供了一个抽象层,测试编写者和配置人员不需要编程。

 

编写第一个测试脚本

测试用例所使用的语言是GherkinGherkin是一种领域特定语言(DSL),它允许用户使用纯的、可理解的英语描述一个应用程序应该如何工作。在开发测试脚本的时候,脚本编写者不需要理解或者描述实现。上面的规格大部分都是自由的文本,但是Gherkin也有一些关键词:FeatureScenarioGivenWhenAndThenJazz Automation扩展了这个关键词列表,增加了ExpectOnClickHoverWaitRefreshEnterSelectForwardBackwardVisible Invisible

 

Gherkin相关的内容有很多,本文只讨论了其中的一部分;但是必须要清楚的一件事情是:它使用基于行的格式,必须保证完整性让它能够清楚如何为每一个功能执行相关步骤。

 

借助于Jazz Automation,执行上面的测试我们不需要使用JavaRuby等语言编写任何代码。使用Jazz Automation,每一个网站页面都必须被定义为一个页面(Page)。JSONXML都可用于页面配置。每一个页面都包含了能够让Jazz Automation验证页面是否被正确加载的高层属性。同时,每一个页面还应该有一个或者多个元素的定义。

 

继续页面配置

测试配置程序是正确配置一个Jazz Automation测试的关键。Jazz Automation支持使用JSONXML进行页面配置。

 

测试配置员需要对jQuery这样的web技术有一定的经验。测试配置员需要为要访问的每一个Web页面创建一个页面(Page)。

 

一个页面有一些必须的属性。每一个页面必须有一个pageName属性,同时至少有一个domElement。功能会频繁地使用pageName,同时它应该是有意义的,这样测试员才能够准确地知道它所引用的Web页面。DomElements是用于验证软件的Web页面元素。通常情况下它们指标签值、下拉框值、图片、按钮、显示的数据(定价等)。这些元素的名称应该是有意义的,这样测试编写者才能够理解每一个组件的目的。

 

一旦剩下的页面被定义完,我们就能够通过“完成”运行场景了。测试配置员必须要清楚下面的内容之一:jQueryXPath或者CSS。我们使用它们“选择”需要测试的Web元素。jQueryJazz Automation最喜欢的选择器机制,同时对于大多数QA分析师而言他们要学会jQuery只需要几天的时间,特别是有那么多的在线教程并且可以使用现代Web浏览器的开发者工具。

 

普通配置

要讨论的最后一部分内容是必须的jazz.properties文件。该配置文件包含一些普通的配置项,例如项目名称(用于报告)、一个表明测试应该在远程运行还是在本地系统上运行的标记、动作和页面速度以及要执行的功能。其他的可选配置属性我们就不在此一一介绍了。

 

报告

对于每一个测试,Jazz Automation都会产生一个描述测试运行详细信息的报告。如果测试执行成功了,那么会生成一个展示成功率为100%的简单报告。如果测试执行失败了,那么会对错误发生的地方创建一个屏幕截图并插入到报告中。除此之外,报告是根据测试运行期间产生的数据文件生成的。该数据文件可用于历史追踪、图表和趋势分析。

 

结论

到现在为止我们已经结束了使用Jazz Automation编写自动化测试的旅程。对于好奇的读者,还有大量的内容需要学习。例如,Jazz Automation还能够通过Sauce Labs这样的公司所提供的技术在远程使用,这样的话你的组织就不需要维护进行全范围测试所必须的每一种浏览器和操作系统的可能组合。你还能够深入探索Jazz Automation如何应用于没有使用jQuery的网站。提示:这需要使用动态插入。

 

Jazz Automation还通过用户界面测试和提供即时反馈完成了持续集成的循环。这比以往任何时候都要更加重要,因为产业已经转移到富HTML5JavaScript用户界面上了。组织需要立即知道应用程序自上而下都在按照期望运行。另外,使用Gherkin作为我们的领域特定语言还允许关键的利益相关方明确地表达出他们对系统应该如何工作、如何与技术资源有效沟通的理解,让开发团队能够解放出来专心构建产品。

 

我们不能将Jazz Automation错误地理解为可以替代传统的单元测试和集成测试框架,例如JUnitTestNG。单元测试和集成测试在成功的软件开发中依然非常重要,Jazz Automation只是更进了一步,用户能够使用它编写针对用户界面的自动化测试。另外,Jazz AutomationDOM级别的测试,所以你能够在一个Web页面中到处移动条目,这样并不会导致测试错误。

 

自动化用户界面测试并不是每一个组织优先考虑的事情,但是如果首先考虑了它,那么前端测试和回归测试就不会让你再次慢下来。


更多精彩内容,请点击阅读原文。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 拿什么拯救中二病? 2015十大新兴热门开源项目盘点 别错把平台当成你的本事 【教师风采】UI导师黄薇:做国内UI设计的女皇! Javascript:一个屌丝的逆袭