前一篇文章咱们简单了解了下单元测试的概念以及使用junit进行入门了。html
但想更好作自动化测试,仍是得了解下testng,毕竟,做为一名技术人,NG(下一代)的测试框架总得了解与跟进。框架
testng比junit的强大与好用仍是在实际操做理解中体会。eclipse
有人说,通常来讲,开发人员比较喜欢junit写单元测试,而测试人员喜欢用testng来写自动化测试。单元测试
而做为初学入门技术选型,我的建议能够直接上testng。长远来看,testng更好的管理和执行自动化测试用例。测试
异同点对比啥的网上不少都有说法了,如:ui
http://www.javashuo.com/article/p-zadkbtqq-o.htmlspa
http://www.sohu.com/a/288820372_216613插件
1. 引入testng 插件包 code
1)在eclipse- Help-Install new SoftWare-Add 输入连接http://beust.com/eclipse/ 一路next便可xml
2)也能够下载testng的包(https://testng.org/doc/download.html),把它放到eclipse的目录下,重启生效
3)或者打开Eclipse, 而后打开网址:https://marketplace.eclipse.org/content/testng-eclipse,把这个Install按钮直接拖拽到Eclipse中也会触发安装
2. 就能够建立一个testng的测试类了,效果以下
3.跑一个testng测试类
代码:
package testng; public class Caculator { /** * 传入两个参数,求和 * @param a * @param b * @return */ public int add(int a,int b){ return a+b; } /** * 传入两个参数,求差 * @param a * @param b * @return */ public int sub(int a,int b){ return a-b; } }
package testng; import org.junit.Assert; import org.junit.Before; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class testng { @Test public void f() { } Caculator a=null; @BeforeTest public void testBeforeClass() { a=new Caculator(); } @Test //测试 add()方法 public void testAdd(){ int result = a.add(1, 2); Assert.assertEquals(result, 4); } @Test //测试 sub()方法 public void testSub(){ int result = a.sub(2, 1); Assert.assertEquals(result, 2); } }
运行效果:
2. 配置testng.xml
了解testng,能跑起来,但想作高级一点的,如集成到其它环境或多个包之间一键跑用例,仍是要了解testng.xml:
1) eclipse 如何配置testng.xml?
进行选中一个测试的项目中,而后进行右键弹出下拉菜单中进行选择为“TestNG”.
这样就会弹出了一个下一级菜单中进行选择为“convert to testng”
这样就会在项目的列表中添加了一个testng.xml的一个文件。
配置以下(变动点为红色部分):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="testng.testng"> <methods> <include name="testAdd" /> </methods> </class> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
运行效果:
若是要运行多个不一样包中的测试用例,则能够配置以下(变动点为红色部分)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="testng.testng"> <methods> <include name="testAdd" /> </methods> </class> <class name="testng2.testng"> <methods> <include name="testAdd" /> </methods> </class> </classes> </test> <!-- Test --> </suite> <!-- Suite -->