51Testing软件测试论坛

标题: TestNG实例 [打印本页]

作者: 子豪_002    时间: 2018-3-20 13:40
标题: TestNG实例
用TestNG测试方法是否正确的一个例子

  1. 1、在Eclipse中新建一个TestLogin的类,此类代码如下:

  2. package com.yxl.test;

  3. import static org.testng.AssertJUnit.assertTrue;
  4. import static org.testng.AssertJUnit.assertEquals;
  5. import org.testng.annotations.Test;
  6. import org.testng.annotations.AfterMethod;
  7. import org.testng.annotations.AfterTest;
  8. import org.testng.annotations.BeforeMethod;
  9. import org.testng.annotations.BeforeTest;

  10. public class TestLogin {

  11.     /**
  12.      * @param args
  13.      */
  14. @BeforeTest    // 标记指定所有测试进行前呼叫此 method

  15. public void beforeAllTest(){

  16.      System.out.println("Before All Test");      

  17. }

  18. @BeforeMethod    // 标记指定每个测试进行前呼叫此 method

  19. public void setUp() {

  20.      System.out.println("Before Each Test Method");

  21. }

  22. @Test(groups = { "group1" })    // 标记为测试程式,并为分组 group1

  23. public void group1Test() {

  24.      System.out.println("Group 1");

  25. }

  26. @Test(groups = { "group2" })    // 标记为测试程式,并为分组 group2

  27. public void group2Test() {

  28.      System.out.println("Group 2");

  29. }

  30. @Test(groups = { "group3" })    // 标记为测试程式,并为分组 group3

  31. public void group3Test() {

  32.      System.out.println("Group 3");

  33. }

  34. @Test                          //测试两个数是否相等
  35. public void add()
  36. {
  37.     assertEquals(5,6);
  38. }

  39. Login log = new Login();
  40. boolean tt =log.logintest("test", "test") ;

  41. @Test                         //测试登录方法是否正确
  42. public void testLogin()
  43. {   
  44.     assertTrue(tt);
  45. }


  46. @AfterMethod   // 标记指定每个测试进行后呼叫此 method

  47. public void tearDown(){

  48.      System.out.println("After Each Test Method");

  49. }



  50. @AfterTest   // 标记指定所有测试进行后呼叫此 method

  51. public void afterAllTest(){

  52.      System.out.println("After All Test");      

  53. }

  54. }

  55. 2、新建一个被测试的类Login

  56. package com.yxl.test;

  57. public class Login {

  58.     public boolean logintest(String username,String password)
  59.     {
  60.         boolean flag = false ;
  61.         if(username=="test" && password=="test" )
  62.         {
  63.             flag = true ;
  64.             return flag ;
  65.         }
  66.         else
  67.         {
  68.             return flag ;
  69.         }
  70.         
  71.     }
  72. }

  73. 3、我们要测试Login 类中的方法是否正确,如果username,password的值均为test,则返回True,否则认为是
  74. 登陆失败。

  75. 故在第1步中这样写代码:

  76. Login log = new Login();
  77. boolean tt =log.logintest("test", "test") ;

  78. @Test                         //测试登录方法是否正确
  79. public void testLogin()
  80. {   
  81.     assertTrue(tt);
  82. }



  83. 4、在工程中需要配置testng.xml,配置如下:

  84. <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
  85.   
  86. <suite name="Example" verbose="1">

  87.   <listeners>
  88.     <listener class-name="priority.PriorityInterceptor" />
  89.   </listeners>
  90.   
  91.   <test name="Simple example" >
  92. <!--
  93.       <groups>
  94.       <run>
  95.         <include name="assert" />
  96.         <include name="fail" />
  97.         <include name="odd" />
  98.         <include name="even" />
  99.         <exclude name="broken" />
  100.       </run>        
  101.     </groups>
  102. -->
  103.     <classes>
  104.       <class name="com.yxl.test.TestLogin" />
  105.     </classes>
  106.   </test>
  107. <!--  
  108.   <test name="Method interceptor example" >
  109.     <classes>
  110.       <class name="priority.PriorityTest" />
  111.     </classes>
  112.   </test>
  113. -->  

  114. </suite>
复制代码



5、Run TestLogin这个类As TestNG,如果Eclipse中的Results of running of class TestLogin的Toolbar变绿,说明
测试通过,

如果是红色的,说明测试失败。






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2