`

JUnit4与TestNG对比

阅读更多
最近构建自动化测试,用webdriver+ant+junit3,发现用例的运行顺序无法保证,具有相关性的功能只好写在一个用例中,网上资料说junit4可以控制用例执行顺序,还没实际操作过,今天发现一篇TestNG与Junit4对比的文章,对我们的自动化测试很有帮助,记录在此,以待后续研究。 原文链接:http://blog.sina.com.cn/s/blog_4592b96f0101gi73.html
特性或指标TestNGJunit4
1. 测试是否支持(Annotations)yesyes
2.框架依赖程度不需要扩展特定的基类和实现特定的方法不需要扩展特定的基类和实现特定的方法
3.灵活性支持Before,After方法,TestNG更为灵活,支持各种签名方式,如private,protected也支持BeforeClass 和AfterClass,只执行一次的方法,但是可以不需要使用static签名支持Before,After方法支持BeforeClass 和AfterClass
4.依赖性测试利用 Test 注释的 dependsOnMethods 属性来应对测试的依赖性问题。有了这个便利的特性,就可以轻松指定依赖方法。难确定测试用例执行的顺序
5.失败和重运行一旦 TestNG 中出现失败,它就会创建一个 XML 配置文件,对失败的测试加以说明。如果利用这个文件执行 TestNG 运行程序,TestNG 就只运行失败的测试。这样可以快速定位出错方法,并且节约大量的时间。失败文件,一般命名为testng-failed.xml,以后只需要运行此文件就可以了。如果测试套件包括 N 项测试,其中 M(M<=N) 项失败,很可能就会迫使您重新运行整个测试套件(修改错误以后)。这样的工作会耗费掉大量的时间。
6.参数化测试TestNG 提供了开箱即用的类似特性。通过在 TestNG 的 XML 配置文件中放入参数化数据,就可以对不同的数据集重用同一个测试用例,甚至有可能会得到不同的结果。支持@DataProvider 注释可以方便地把复杂参数类型映射到某个测试方法。如果您想改变某个受测方法的参数组,就只能给每个 不同的参数组编写一个测试用例。多数情况下,这不会带来太多麻烦。出现大量的重复测试代码。
7.测试分组支持不支持
8.多线程测试TestNG对多线程测试的支持良好,只需要配置即可。JUnit中要想进行多线程测试比较麻烦,需要其它模块。

分享到:
评论

相关推荐

    追求代码质量:Junit4与TestNG的对比

    【追求代码质量:Junit4与TestNG的对比】 在软件开发中,代码质量的保证是至关重要的,而单元测试是确保代码质量的一种有效手段。本文主要探讨了两个流行的Java测试框架——JUnit 4和TestNG,它们都是用于编写和...

    testing-junit-testng

    标题与描述均提到了"Testing-JUnit-TestNG",这明确指向了软件测试领域中的两个重要的测试框架:JUnit和TestNG。这两个框架在Java开发社区中被广泛使用,用于编写自动化测试用例,以确保代码质量和功能正确性。 ###...

    junit和TestNG框架入门

    - **TestNG**: TestNG是一个基于JUnit和NUnit思想设计的新一代测试框架,提供了更丰富的特性和灵活性,包括但不限于并行测试执行、灵活的依赖管理、更强大的参数化支持等。TestNG相比JUnit在测试控制、重复执行、...

    junit-vs-testng:JUnit 和 TestNG 这两个 Java 程序测试框架的特性与示例的比较。 前者是流行的,后者是臭名昭著的

    JUnit4引入了注解,使得测试用例的编写更加直观。例如,`@Test`注解标记测试方法,`@Before`和`@After`注解分别用于设置和清理每个测试前后的环境。此外,`@Ignore`注解可以跳过不想执行的测试。 然而,JUnit在某些...

    testng6.14.3

    提供的离线安装包表明TestNG与Eclipse IDE有良好的集成。用户可以通过Eclipse的插件安装向导安装TestNG,便于编写、运行和调试测试代码。对于Eclipse 3.6及以上版本,TestNG 6.14.3应能无缝工作。 7. **压缩包内容...

    TestNg测试ppt

    #### 二、TestNG 与 JUnit 的对比 - **JUnit** 已经在单元测试领域取得了巨大的成功,而 **TestNG** 则是在 JUnit 的基础上进行了许多改进和创新。 - **更多的灵活性**:TestNG 支持更灵活的测试组织方式,比如测试...

    Java测试新技术TestNG和高级概念.part2

    4.1 容器内测试与容器外测试的对比 4.2 容器内测试 4.3 Java命名和目录接口(JNDI) 4.4 Java数据库连接(JDBC) 4.5 Java事务API(JTA) 4.6 Java消息服务(JMS) 4.7 Java持久API(JPA) 4.8 Enterprise JavaBeans...

    junit4.4+junit4.5+开源码打包下载

    2. **TestNG兼容性**:引入了`@FixMethodOrder`,使得测试方法可以按照指定顺序执行,这与TestNG的特性类似。 3. **假设(Assumptions)**:`Assume`类提供了假设条件,当某个假设不满足时,测试会跳过而不是失败,...

    最后还是选择了TestNG

    标题中的“最后还是选择了TestNG”表明这篇博客的作者在对比了多种测试框架后,最终决定采用TestNG作为其项目中的测试工具。TestNG是一款强大的、灵活的单元测试和集成测试框架,它提供了比JUnit更丰富的功能,如...

    Selenium+TestNG自动化测试

    4. 可以与其他测试框架(如TestNG)集成,构建强大的自动化测试解决方案。 **Selenium缺点** 1. 学习曲线相对较陡,需要掌握编程和测试框架知识。 2. 对浏览器和操作系统版本的兼容性需持续关注。 3. 脚本维护工作...

    SpringBoot-Junit

    5. **TestNG与JUnit的对比**:虽然这个项目主要基于JUnit,但理解TestNG也是一个补充。TestNG提供了更高级的功能,如并发测试、测试套件的分组和优先级,以及更丰富的异常处理。 6. **Test Profiles**:Spring Boot...

    Java测试新技术TestNG和高级概念.part1

    4.1 容器内测试与容器外测试的对比 4.2 容器内测试 4.3 Java命名和目录接口(JNDI) 4.4 Java数据库连接(JDBC) 4.5 Java事务API(JTA) 4.6 Java消息服务(JMS) 4.7 Java持久API(JPA) 4.8 Enterprise JavaBeans...

    juint测试工具包

    9. **TestNG与JUnit的对比**: 虽然JUnit在Java单元测试领域很流行,但TestNG提供了更多高级特性,如并发测试、更灵活的测试配置和更好的报告。然而,对于许多项目来说,JUnit4已经足够满足需求,并且因为其简单...

    通过DBUNIT做批量对比测试

    同时,结合使用其他测试框架,如 JUnit 或 TestNG,可以构建自动化测试套件,进一步提高测试效率。 总之,DBUNIT 是数据库测试的强大工具,尤其适合进行批量数据的对比测试,确保系统在大量数据操作后仍能保持正确...

    eclemma-3.0.1覆盖率测试工具

    它与JUnit、TestNG等流行的测试框架紧密集成,为开发者提供了一种评估单元测试充分性的方式。在软件开发过程中,代码覆盖率是衡量测试完整性的一个关键指标,确保代码的大部分逻辑至少被测试过一次。 Eclemma ...

    Java单元测试Java单元测试Java单元测试Java单元测试

    10. **测试工具比较**:除了JUnit,还有TestNG等其他测试框架,TestNG提供了更丰富的功能,如并发测试和灵活的测试配置。 文档“java单元测试培训提纲.doc”可能涵盖了以上各个知识点的详细讲解,而“JAVA单元测试...

    Java毕业设计-专利对比分析小程序-演示视频(高分期末大作业).rar

    9. **测试与调试**:在开发过程中,单元测试(JUnit)和集成测试(TestNG)是确保代码质量的重要工具,同时,使用IDE的调试功能来查找和修复程序中的错误。 10. **版本控制**:为了团队协作和版本管理,开发者可能...

    达内总部软件测试技术类面试题集锦

    - TestNG:对比JUnit,理解TestNG的高级特性,如数据驱动测试、并发测试和测试报告生成。 4. **性能测试**: - JMeter:学习使用Apache JMeter进行压力和负载测试,包括创建测试计划、配置线程组、监听器和断言。...

    接口自动化文档资料-练习部分

    3. 编写测试脚本:使用相应的测试框架(如JUnit、TestNG)和库(如RestAssured)实现测试逻辑。 4. 执行测试:运行测试脚本,记录结果。 5. 分析结果:对比预期结果和实际结果,定位问题。 6. 缺陷管理:跟踪和修复...

Global site tag (gtag.js) - Google Analytics