• 导入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>

    测试结果:

    
    

      

  • 相关阅读:
    腾讯// 反转字符串
    腾讯//Multiply Strings 字符串相乘
    腾讯//盛最多水的容器
    腾讯//删除排序数组中的重复项
    腾讯//删除排序数组中的重复项
    C语言中的预处理命令
    Python十大应用领域与就业方向
    Python的主要应用领域及应用场景
    Git命令_git status
    Git命令_git add快速添加文件到暂存区
  • 原文地址:https://www.cnblogs.com/csj2018/p/9195276.html
Copyright © 2020-2023  润新知