首页> 赛事详情
距离报名截止还剩247天
报名时间:2019-07-17——2020-07-22 比赛时间:2019-06-10——2022-07-17
第二届全国SLAM技术论坛
举办中
浏览 21 关注 1 报名 2

主办方: 中国图像图形学学会

承办方: 三维视觉专业委员会 清华大学

协办方: 深蓝学院

大赛赛题
  • 百度杯

    五大Java自动化测试框架

    本文通过介绍与比较五种Java自动化测试框架与工具,帮助您顺利开展各种UI测试、单元测试、以及针对应用程序的BDD测试。

    五大Java自动化测试框架

    【51CTO.com快译】多年来,Java一直是服务器端应用开发的首选编程语言。随着时间的推移和自动化测试的兴起,业界出现了许多基于Java,并根据不同的业务逻辑而发展起来的开源框架。在此,我向大家介绍并比较五种用到了Java的自动化测试框架。

    1.JUnit

    由Kent Beck和Erich Gamma开发的JUnit是xUnit框架的一个实例。其设计的宗旨是让Java开发人员能够编写出各种脚本、并执行那些可重复的测试用例。因此,JUnit通常被用来测试各种小块的程序代码。同时,您还可以通过将JUnit与Selenium WebDriver相集成,来执行针对某个网站的自动化测试。不过,只要添加了任何新的代码,您都需要重新执行整个测试用例、以确保无任何损坏。

    安装JUnit的先决条件

    由于JUnit是一种基于Java的框架,因此它与Java的Selenium WebDriver高度兼容。您需要准备如下先决条件:

    • 安装最新版本的JDK。

    • 下载最新版本的JUnit,并设置相关的环境。

    • 熟悉使用面向对象编程语言(尤其是Java)进行应用开发。

    JUnit的优点和缺点

    JUnit有如下优点:

    • 由于必须阅读代码、并查找异常,因此开发人员普遍能够对以测试为驱动的环境处之泰然。

    • 能够尽早地检测出错误,进而产生更为可靠的程序代码。

    • 能够开发出更具可读性且无bug的程序代码,以增强项目相关人员的信心。

    • 最新版本的JUnit(版本4)不但可以更加轻松地识别出各种异常,而且能够执行那些由旧版JUnit所编写的测试用例。

    • 可与Java 5及以上版本一起使用。

    JUnit的唯一缺点是:

    • 该框架无法执行依赖性测试。

    JUnit的特点与竞品比较

    JUnit与下面将要提到的TestNG具有相似的功能。但是两者在参数化测试的实现过程上不尽相同。由于历史悠久,JUnit拥有更好的社区支持,并被定义为使用Selenium WebDriver进行基于Java类应用单元测试的标准。而TestNG虽然目前用户相对较少,但是其社区规模却日益增长。因此,我们认为:是选择JUnit、还是TestNG作为Java测试的框架,完全取决于目标应用的性质和需求。

    当然,如果您已选定了使用JUnit的话,请参考《使用JUnit和Selenium执行自动化测试》一文,以针对浏览器的兼容性开展分步测试。

    2.JBehave

    作为测试人员,您一定听说过行为驱动开发(Behavior Driven Development,BDD)。它能够以一种透明的方式,向业务用户描述验收测试。而JBehave正是一种通过Selenium WebDriver来针对BDD开展Java测试的框架。它可以让新手轻松地理解BDD概念,进而基于行为开展应用测试。

    安装JBehave的先决条件

    用户使用JBehave的理想方法是与Eclipse相集成。因此,除了具有JDK1.7及更高版本,和Indigo以上的任意Eclipse IDE之外,您还需要配备如下jar文件:

    • JUnit-4.1.0.jar

    • Jbehave-core-3.8.jar

    • Commons-lang-2.4.jar

    • Paranamer-2.5.jar

    • Freemarker-2.3.9.jar

    • Org.apacje.commons.io.jar

    • Org.apache.commons.collections.jar

    • Plexus-utils-1.1.jar

    JBehave的优点和缺点

    与所有其他BDD测试框架一样,JBehave具有如下优点:

    • 协调具有类似规范、却身处不同项目的开发团队,来实现行为驱动式的开发。

    • 根据类似的规范格式,让项目经理和利益相关者对开发团队和QA团队的输出具有更清楚地了解。

    • 由于JBehave具有更多值得用户推理和思考的细节,因此目标产品会具有更好的规范性。

    • 由于使用了半正式(semi-formal)语言、以及域词汇表(domain vocabulary),因此JBehave有助于在团队结构中保持一致性的行为。

    JBehave同样也有着其他BDD测试工具一样的缺点:

    • 一款BDD测试工具的成功,主要取决于项目中不同成员,包括:利益相关者、开发人员和测试人员之间的沟通,以及组织的管理。反之,沟通的缺乏则可能会导致无法逾越的问题、有缺陷的应用、业务需求未被满足、以及各方的互相推诿。

    JBehave的特点与竞品比较

    JBehave与下面将要提到的Serenity有着相同的工作方式。但是,如果您的目标是使得自动验收测试更为有效的话,那么将Serenity与JBehave相集成,则会获得更好的测试体验。

    3.Serenity

    Serenity同样是一种能被用于行为驱动测试的开源库。该框架可帮助您编写出各种结构良好、且易于维护的验收标准。它在一定程度上扩展了JUnit和WebDriver的功能。

    安装Serenity的先决条件

    由于该框架基于Java,因此您显然需要具备Java、或其他任何面向对象编程语言的知识与经验。此外,您的电脑上还需要有:

    • JDK 5或更高版本。

    • Maven 3.0或更高版本。

    • 由于Maven和Eclipse的组合更易于使用,因此作为IDE工具的Eclipse通常是所有开发人员首选的。

    Serenity的优点和缺点

    针对行为驱动测试,Serenity具有如下优点:

    • 该框架能够帮助测试人员创建各种REST服务的测试用例。

    • 用户不必花费大量的时间,来维护或构建自己的自动化框架。

    • 它能够在定义、理解测试用例、以及实现方式建立平衡。

    • 它可以与许多自动化框架相集成,其中包括:Selenium、JBehave、基于Java的高级开发框架(如Spring)、甚至是JIRA之类的持续集成工具。

    与JBehave类似,Serenity的唯一缺点便是:为了充分发挥其支持行为驱动开发的完整功能,项目参与者需要保持彼此之间的沟通。

    Serenity的特点与竞品比较

    由于主要被用于报告验收的标准,因此使用Serenity所写出的报告,比JBehave等其他BDD框架具有更丰富信息量。同时,它还可以帮助开发人员编写出更高质量的自动化测试用例场景。另外,它能够为RestAssured和Selenium WebDriver提供支持,使得测试人员能够更快、更简便地写出基于验收测试标准的自动化用例。

    4.TestNG

    也许是受到了JUnit的启发,由Cedric Beust创建的TestNG也是一种基于Java的开源自动化测试框架,不过它更为强大。此处NG表示“下一代”,因此它能够在集成的过程中采用更好的执行方式。该框架可帮助开发人员实现排序、分组和参数化等功能,进而在消除了以往框架各种缺点的基础上,让新的测试用例更具灵活性。

    安装TestNG的先决条件

    • 在系统中已安装了最新版本的JDK。

    • 最新版本的Eclipse。

    • 具备Java或其他任何面向对象编程语言的知识和实践经验。

    TestNG的优点和缺点

    在弥补过往框架诸多缺点的基础上,TestNG还具备如下优点:

    • 该框架能使用户在多个代码片段上运行各种并行的测试。

    • 在执行用例测试的期间,您可以生成一份HTML报告。

    • 可以根据优先级对测试用例进行分组和排列。该框架大幅简化了数据库测试、前端测试等方面。

    • 您可以对数据采取参数化、并使用注释来轻松地设置优先级。当然,如果您的项目并不需要测试用例的优先级,则也没必要用到TestNG。

    它的唯一缺点是:

    • 用户需要一些时间来设置TestNG。

    TestNG的特点与竞品比较

    如前所述,TestNG虽然与JUnit有着相同的功能,但是它补足了JUnit的短板。在面对既有的依赖性,您却无法控制先测试哪个的时候,TestNG允许您以任意顺序运行测试用例。此外,它还有助于实现参数化的测试。虽然JUnit 4.5已经具备了此功能,但是TestNG的实现效率更高。因此,如果您的项目很复杂、并且需要执行上百种测试用例的话,花点时间去设置TestNG是完全值得的。


    浏览 0 报名 0
  • 京东杯

    image.png

    浏览 0 报名 0
大赛介绍

SLAM,也称为即时定位与地图构建,是机器人或其他设备在自身位置不确定的条件下,在完全未知环境中创建地图(Mapping),同时利用地图进行自主定位和导航(Localization),实现路径规划(Navigation)的技术,至今已提出三十余年。

近年来,SLAM被广泛应用于AR、机器人、无人机、无人驾驶等热门领域,受到学术界和企业界的广泛关注。去年7月,第一届全国SLAM技术论坛由中国图象图形学学会发起,深蓝学院承办,浙江大学计算机辅助设计与图形学国家重点实验室协办。论坛邀请了国内多位专家围绕SLAM的研究以及产业化应用作报告分享。吸引了来自全国各地的460多位老师、学生以及企业工程师报名参加此次活动。

image.png

   为进一步促进国内SLAM技术的发展以及产学研融合,推动国内SLAM技术的产业化进程,中国图象图形学学会将于2019年7月27日-28日在清华大学举办“第二届全国SLAM技术论坛”。


专家评委
  • 黄小琥开发人员!

    京东

  • 1232123

    123