TestNG启动一次浏览器执行多个测试用例

在执行测试用例的时候,每次都要打开关闭浏览器。下面介绍一个简单的方法,让执行用例时只启动关闭一次浏览器。简单的说一下思路,首先定义一个基础类,把启动浏览器放在@BeforeSuite中,将关闭浏览器放在@AfterSuite中;在基础类中,通过关键字static定义webdriver driver为全局应用对象,则此driver可以在所有类中使用;其他class脚本中去掉启动、关闭浏览器操作,通过直接引用基础类中的driver来操作网页。

基础class

import org.testng.annotations.BeforeSuite;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterSuite;

public class OpenBrowserOnce {
     
	public static WebDriver driver;

  @BeforeSuite
  public void beforeSuite() {
     
	// 指定谷歌浏览器驱动的路径
	System.setProperty("webdriver.chrome.driver", "D:\\Webdriver\\chromedriver.exe");
	//创建一个叫driver的对象,启动chrome浏览器
	driver = new ChromeDriver();
	//浏览器窗口最大化
	driver.manage().window().maximize();
  }

  @AfterSuite
  public void afterSuite() {
     
	//退出浏览器
	driver.quit();
  }
}

测试用例(这里就列举一个打开百度首页啦)

import org.testng.annotations.Test;
import org.openqa.selenium.WebDriver;

public class OpenChromeNewTest {
     
	public static WebDriver driver;
@Test
  public void OpenChrome() throws InterruptedException {
     
	        //引用共有类型中的变量
	        driver = OpenBrowserOnce.driver;
	        //打开网址
			driver.get("http://www.baidu.com");
  }
}

创建测试套件(这里需要把创建的基础类手动加进来)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <class name="OpenOnce.OpenBrowserOnce"/>
      <class name="OpenOnce.OpenChromeNewTest"/>
      <class name="OpenOnce.LoginNewTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

最后执行测试套件就OK 啦

你可能感兴趣的:(TestNG,selenium,软件测试,java)