zoukankan      html  css  js  c++  java
  • 导入testng管理测试用例

    1.在pom.xml中增加testng的依赖,以导入testNG

    2.在src-main-resources目录下新建xml文件,比如untitled.xml.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="testSuite1">
          <test name="UITest">
              <classes>
                  <class name="testcase.TestNG" />
                  <class name="testcase.testNG2" />
                  <class name="testcase.testNG1" />
              </classes>
    
          </test>
    </suite>

    3.BeforeTest AfterTest BeforeClass AfterClass的区别

     BeforeTest AfterTest

    case1:

    package testcase;
    
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    
    public class testNG3 {
        @BeforeTest
        public void setup(){System.out.println("case3:set up");}
        @Test
        public void test1(){System.out.println("case3");}
        @AfterTest
        public void tearup(){System.out.println("case3:tear down");}
    }


    case2:

    package testcase;
    
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    
    public class testNG4 {
        @BeforeTest
        public void setup(){System.out.println("case4:set up");}
        @Test
        public void test1(){System.out.println("case4");}
        @AfterTest
        public void tearup(){System.out.println("case4:tear down");}
    }

    xml:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="testSuite1">
          <test name="UITest">
              <classes>
                  <!--<class name="testcase.TestNG" />
                  <class name="testcase.testNG2" />
                  <class name="testcase.testNG1" />-->
                  <class name="testcase.testNG3"/>
                  <class name="testcase.testNG4"/>
              </classes>
    
          </test>
    </suite>

    执行结果:

    将BeforeTest替换为BeforeClass,AfterTest替换为AfterClass

    case1:

    package testcase;
    
    import org.testng.annotations.*;
    
    public class testNG3 {
        @BeforeClass
        public void setup(){System.out.println("case3:set up");}
        @Test
        public void test1(){System.out.println("case3");}
        @AfterClass
        public void tearup(){System.out.println("case3:tear down");}
    }

    case2:

    package testcase;
    
    import org.testng.annotations.*;
    
    public class testNG4 {
        @BeforeClass
        public void setup(){System.out.println("case4:set up");}
        @Test
        public void test1(){System.out.println("case4");}
        @AfterClass
        public void tearup(){System.out.println("case4:tear down");}
    }

    xml:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="testSuite1">
          <test name="UITest">
              <classes>
                  <!--<class name="testcase.TestNG" />
                  <class name="testcase.testNG2" />
                  <class name="testcase.testNG1" />-->
                  <class name="testcase.testNG3"/>
                  <class name="testcase.testNG4"/>
              </classes>
    
          </test>
    </suite>

    执行结果:

    4.使用TestNg增加断言

    package testcase;
    import org.testng.Assert;
    import org.testng.annotations.*;
    public class testNG3 {
        @BeforeClass
        public void setup(){System.out.println("case3:set up");}
        @Test
        public void test1(){
            System.out.println("case3");
            String actureMessage="abc";
            String expectMessage="efg";
            Assert.assertTrue(actureMessage.equalsIgnoreCase(expectMessage),"Expect message is "+expectMessage+".But acture message is "+actureMessage);
        }
        @AfterClass
        public void tearup(){System.out.println("case3:tear down");}
    }

    将expectMessage修改为abc,结果为

    
    

     5.编写基于TestNg的测试用例

    Baidu.java

     1 package testcase;
     2 
     3 import org.openqa.selenium.By;
     4 import org.openqa.selenium.WebDriver;
     5 import org.openqa.selenium.chrome.ChromeDriver;
     6 import org.testng.annotations.AfterTest;
     7 import org.testng.annotations.BeforeTest;
     8 import org.testng.annotations.Test;
     9 
    10 import java.util.concurrent.TimeUnit;
    11 public class Baidu {
    12     private WebDriver driver;
    13     @BeforeTest
    14     public void setUp(){
    15         String chromepath = System.getProperty("user.dir")+"/src/main/java/drivers/chromedriver";
    16         System.setProperty("webdriver.chrome.driver",chromepath);
    17         driver = new ChromeDriver();
    18         driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
    19     }
    20     @Test
    21     public void test(){
    22         driver.get("https://www.baidu.com");
    23         driver.findElement(By.xpath("//input[@class='s_ipt' and @id='kw']")).sendKeys("selenium");
    24         driver.findElement(By.xpath("//input[@id='su']")).click();
    25         System.out.println(driver.findElement(By.xpath("//span[@class='nums_text']")).getText());
    26 
    27     }
    28     @AfterTest
    29     public void tearDown(){
    30         driver.quit();
    31     }
    32 }

    test.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="testSuite1">
        <test name="UITest">
            <classes>
                <class name="testcase.Baidu" />
            </classes>
    
        </test>
    </suite>

    测试结果:

    
    

      

  • 相关阅读:
    UITextView 和 UITextField 的提示信息placeholder
    【转载】ios下的正则表达式,RegexKitLite
    Java集合(2)一 ArrayList 与 LinkList
    Java并发(2) 聊聊happensbefore
    Java并发(3) 聊聊Volatile
    Java并发(1) 聊聊Java内存模型
    Java集合(5)一 HashMap与HashSet
    Java集合(3)一 红黑树、TreeMap与TreeSet(上)
    Java集合(4)一 红黑树、TreeMap与TreeSet(下)
    Java集合(1)一 集合框架
  • 原文地址:https://www.cnblogs.com/csj2018/p/9195276.html
Copyright © 2011-2022 走看看