要想知道两个框架的区别,首先分别介绍一下两个框架。
TestNG是一个java中的开源自动化测试框架,其灵感来自JUnit和NUnit,TestNG还涵盖了JUnit4整个核心的功能,但引入了一些新的功能,使其功能更强大,使用更方便。
它是一个在类中运行测试的框架。它为相应的测试制作类,然后处理它们。TestNG是一个先进的框架,克服了JUnit中的限制。
它也被认为是一个灵活的工具来执行测试,因为它使用相同的类来运行其所有的测试,并管理线程来运行程序,这使得检查测试的整体功能快速。
而TestNG的特点:TestNG可以把测试方法放在Java组中。
TestNG处理单元测试,将参数传入测试方法。
TestNG利用线程可以更好地提高测试性能,因为执行时间减少。
JUnit的一些限制被克服了,因为TestNG支持并行测试的执行。
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一个。
JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。
它支持通过编写和测试来运行测试。
JUnit框架最初是基于用于单元测试的SUnit框架,但后来使用Selenium WebDriver对Java进行了更新。
现在,当我们需要在Java中进行测试时,JUnit被作为一个标准。Junit的特点可以归纳如下:JUnit不支持同时运行并行测试。
JUnit框架在Java 8中被更新。
JUnit有助于在编写代码时实现测试驱动的编程。
JUnit现在被许多语言所支持。
所以单纯的从字面意思上看,Junit更加原始一些,而TestNG则是采用了Junit的模式和资源。
所以可以从以下几个方面对二者进行详细的对比:
比较基础 | JUnit | TestNG |
开发团队 | JUnit是由Kent Beck、David Saff、Erich Gamma开发的。Erich Gamma, and Kris Vasudevan。 | TestNG是一个测试框架,由Cédric Beust开发。 |
开源性 | JUnit是一个开源的框架,用于触发和编写测试。 | TestNG是一个基于Java的框架,是运行测试的一个升级选择。 |
平行测试 | JUnit不支持运行平行测试。 | TestNG可以运行并行测试。 |
注解支持 | JUnit不支持高级注解。 | TestNG支持高级注解。 |
依赖性 | JUnit中缺少依赖性测试。 | TestNG中存在依赖性测试。 |
分组特性 | 分组测试在JUnit中是不可能的。 | TestNG测试可以被分组并并行运行。 |
易用性 | 运行测试需要对JUnit有一定的依赖性。 | 编写测试和配置它们在TestNG中比JUnit容易。 |
但是因为Junit是比较基本的核心技术,所以在不少自动化测试工具中,默认支持的还是Junit,比如Selenium IDE中,如果要导出测试脚本的话,对于Java语言的脚本,支持的框架就是还是Junit。
导出的测试脚本的内容: