TestNG从入门到精通测试教程

发表于:2018-7-17 10:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:易百    来源:易百

  TestNG介绍
  TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit,   功能都差不多, 只是功能更加强大,使用也更方便
  Java中已经有一个JUnit的测试框架了。  TestNG比JUnit功能强大的多。  测试人员一般用TestNG来写自动化测试。  开发人员一般用JUnit写单元测试
  官方网站: http://testng.org/doc/index.html
  在Eclipse中安装TestNG
  打开Eclipse   Help ->Install New Software ,   然后Add   "http://beust.com/eclipse"
  TestNG最简单的测试
  下面是TestNG的最简单的一个例子
  package TankLearn2.Learn;
  import org.junit.AfterClass;
  import org.junit.BeforeClass;
  import org.testng.annotations.Test;
  public class TestNGLearn1 {
  @BeforeClass
  public void beforeClass() {
  System.out.println("this is before class");
  }
  @Test
  public void TestNgLearn() {
  System.out.println("this is TestNG test case");
  }
  @AfterClass
  public void afterClass() {
  System.out.println("this is after class");
  }
  }
  TestNG的基本注解
   
   
  TestNG中如何执行测试
  第一种直接执行:右键要执行的方法,  点Run As ->TestNG Test
  第二种:  通过testng.xml文件来执行. 把要执行的case, 放入testng.xml文件中。 右键点击testng.xml,   点Run As
  testng.xml
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Suite1">
  <test name="test12">
  <classes>
  <class name="TankLearn2.Learn.TestNGLearn1" />
  </classes>
  </test>
  </suite>
  TestNG按顺序执行Case
  在testng.xml中,可以控制测试用例按顺序执行。  当preserve-order="true"是,可以保证节点下面的方法是按顺序执行的
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite1">
  <test name="test12" preserve-order="true">
  <classes>
  <class name="TankLearn2.Learn.TestNGLearn1">
  <methods>
  <include name="TestNgLearn3" />
  <include name="TestNgLearn1" />
  <include name="TestNgLearn2" />
  </methods>
  </class>
  </classes>
  </test></suite>
  TestNG异常测试
  测试中,有时候我们期望某些代码抛出异常。
  TestNG通过@Test(expectedExceptions)  来判断期待的异常, 并且判断Error Message
  package TankLearn2.Learn;
  import org.testng.annotations.Test;
  public class ExceptionTest {
  @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp="NullPoint")
  public void testException(){
  throw new IllegalArgumentException("NullPoint");
  }
  }
  TestNG组测试
  TestNG中可以把测试用例分组,这样可以按组来执行测试用例比如:
  package TankLearn2.Learn;
  import org.testng.annotations.Test;
  public class GroupTest {
  @Test(groups = {"systemtest"})
  public void testLogin(){
  System.out.println("this is test login");
  }
  @Test(groups = {"functiontest"})
  public void testOpenPage(){
  System.out.println("this is test Open Page");
  }
  }
  然后在testng.xml中 按组执行测试用例
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite1">
  <test name="test1">
  <groups>
  <run>
  <include name="functiontest" />
  </run>
  </groups>
  </test></suite>

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号