package HelloMaven.HelloMaven;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
public class BaseDriver {
public WebDriver driver;
public WebDriver GetDriver() {
return driver;
}
@BeforeClass
public void testbeforeclass(){
System.out.println("before class---- called");
selectDriver select = new selectDriver();
driver = select.DriverSelect("Chrome");
driver.manage().window().maximize();
}
@BeforeMethod
public void testbeforemethod() {
System.out.println("before method ------ called");
}
@AfterClass
public void testafterclass() {
System.out.println("after class ------ called");
driver.close();
}
@AfterMethod
public void testaftermethod() {
System.out.println("after method ------- called");
//driver.close();
}
}
在test case中的应用
package HelloMaven.HelloMaven;
import org.openqa.selenium.By;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners({TestNgListener.class})
public class testNG_test extends BaseDriver{
@Test
public void test1() {
System.out.println("test --------> test1 called");
//Assert.assertEquals(1, 2);
driver.get("http://www.imooc.com");
}
@Test
public void test2() {
System.out.println("test --------> test2 called");
driver.get("http://www.imooc.com");
driver.findElement(By.className("user"));
}
}
对test case进行监听
package HelloMaven.HelloMaven;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class TestNgListener extends TestListenerAdapter{
@Override
public void onTestFailure(ITestResult tr) {
System.out.println("on test failure");
BaseDriver base = (BaseDriver)tr.getInstance();
WebDriver driver = base.GetDriver();
ScreenShot(driver);
super.onTestFailure(tr);
}
@Override
public void onTestSuccess(ITestResult tr) {
System.out.println("on test success");
super.onTestSuccess(tr);
}
@Override
public void onTestSkipped(ITestResult tr) {
System.out.println("on test skipped");
super.onTestSkipped(tr);
}
public void ScreenShot(WebDriver driver) {
long curdate = System.currentTimeMillis();
String path = String.valueOf(curdate) + ".png";
String curpath = System.getProperty("user.dir");
System.out.println(curpath);
path = curpath + "/" + path;
File Screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(Screen, new File(path));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}