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>

    测试结果:

    
    

      

  • 相关阅读:
    二次型(求梯度) —— 公式的简化
    Opencv中K均值算法(K-Means)及其在图像分割中的应用
    统计学相关概念及机器学习中样本相似性度量之马氏距离
    Opencv中SVM样本训练、归类流程及实现
    1+2+3+...+100 不允许使用乘法和除法,条件分支循环等
    1+2+3+...+100 不允许使用乘法和除法,条件分支循环等
    crtmpserver实现防盗流和流推送验证
    快速幂或者矩阵快速幂
    如何调整 php 应用的上传附件大小?
    三个和数组有关的程序题目(C++)
  • 原文地址:https://www.cnblogs.com/csj2018/p/9195276.html
Copyright © 2011-2022 走看看