Java 是当今最风行的编程语言之一,长年位居最受欢迎编程语言排行榜前三。一个优良的 java 程序员,在研发时离不开对测试框架的理解,从而开发出更平安和更高效的代码。应用这些测试框架的其中一个最重要的起因是缩小出错的可能性,进步开发效率,并升高研发老本。在本文中,咱们将介绍用于 Java 测试的最常见的测试框架。
1.Selenium
Selenium 是一个收费的开源测试框架,次要用于测试基于不同平台的 Web 应用程序。Selenium 最大劣势在于对网络应用程序进行自动化测试。Selenium 不仅是一个工具,而且是一个残缺的套件,能够你补研发的的测试需要。Selenium 被广泛应用的次要起因是收费开源应用的。Selenium 还是跨平台应用,实用于各个系统。Selenium 还能够与 Java 中的其余工具(如 docker 和 maven)联合运行。
长处:
- 多浏览器反对
- 多种语言和框架反对
- 易于应用
- 更好的集成和可重用性
- 社区沉闷,频繁更新
毛病:
- 创立时比拟繁琐,通常在创立测试用例时,会比拟耗时,当然相熟后就那么几个步骤。
- 不足内置报告工具
- 仅实用于网络应用程序
2. Serenity
Serenity 提供一个用于行为驱动测试的开源平台,晚期以 Thucydides 为名。Serenity 可为测试自动化我的项目编写清晰且结构化的验收规范。此外,该框架具备加强 WebDriver 和 JUnit 性能的能力,还容许用户地创立描述性测试报告。
长处:
- 反对多种自动化验收测试解决方案
- 测试后疾速创立文档
- 能够很容易地与各种其余框架集成
毛病:
- 创立性能文件须要更长的工夫
- 我的项目参与者之间必须放弃继续的沟通
3.JUnit
Junit 是目前利用最宽泛的单元测试框架,受制于它初衷,Junit 的框架旨在执行单元测试,研发人员能够通过函数或办法在门路中传递代码片段。当执行测试驱动的办法时,集体倡议在编写理论代码之前事后实现单元测试代码。依照失常程序,开发人员编写代码后,须要先执行测试用例,而后能力运行代码片段。每次增加新代码时,都要再次运行测试用例,以确保通过所有测试场景,并且代码没有问题,才容许上传代码到 git 库中。Junit 框架之所以不同凡响,是因为它比其余相似框架容许更快、执行更高效。
长处:
- JUnit 提供对测试断点容许的反对
- Junit 提供比较完善的测试报告
- Junit 是一个简化框架,实用于部署自动化测试场景
- Junit 具备编写主动验证测试用例的能力
毛病:
- 应用绝对较大的测试套件时,Junit 显得不会那么灵便
- Junit 测试后,没有生成 HTML 报告的性能,这对于非研发人员来说,是一本天书
- Junit 不反对依赖测试
4.TestNG
TestNG 是一个开源测试框架,并受到其余两个驰名框架的启发——JUnit 和 NUnit,具备一些新的附加性能。源自 NG 代表下一代的名称,TestNG 在证实其测试实力方面并不令人悲观。TestNG 测试过程也不是很简单,咱们能够通过框架申请测试数据库或前端来测试场景。还能够提取 HTML 报告,这对于项目经理,产品经理以及其余交付人员来说是十分有用。
长处:
- 反对并行测试
- 反对日志生成
- 可能创立测试后 HTML 报告
- 底层测试用例能够组合在一起
- 能够设置测试用例执行的优先级
毛病:
- 设置 TestNG 须要更多工夫 (对老手来说,过程是十分苦楚的)
- 如果不须要优先思考测试用例,则不举荐。
5.Cucumber
Cucumber 是一个用 Ruby 编写的测试框架,十分受测试人员的欢送,因为它提供了一个对立的文档和标准规范,并提供了一个报告文档。此外,标准规范会自动更新。
长处:
- 敌对的可读性
- 反对步骤可重用性,缩小了一次又一次编写雷同代码的须要
- 能够应用一些示例来实现自动化测试
毛病:
- cucumber 与 Gherkin 整合一起减少了框架的复杂性
- 测试人员 / 开发人员更在乎编写可在简略通用代码,实现工作的场景中重用的代码。
6. JBehave
这是一个基于 Java 原生的测试框架,与 selenium 驱动程序联合应用,并反对行为驱动开发 (BDD)。JBehave 提供了一个比拟敌对的报告性能,这意味着能够以 XML、HTML 或文本格式生成报告。
长处:
- 帮忙用户提供杰出的文档
- 反对测试后生成 HTML 报告
- JBehave 高效且易于应用
- 开箱即用的 JUnit 反对
毛病:
- 不反对个性化性能,只反对事件完整性,进而可能导致导致应用程序产生谬误或者与理论业务需要相悖,最终导致所有各方相互指摘(甩锅)。
7. Mockito
Mockito 是一个开源的基于 Java 的行为驱动测试框架。该框架的次要性能是模仿对象是主动创立的,无需显式创立它们。
长处:
- 反对异样
- 能够应用正文创立模仿对象
- 对返回值的提供根底反对
- 模仿对象不须要手动编写
毛病:
- 不反对局部变量的模仿
- 不反对公有和静态方法
- 对于咱们编写的子类,无奈操作其公有字段。