TestNg常用注解介绍,先来张图:

selenium2中的TestNg注解和数据驱动的简介及使用-LMLPHP

先看一下,以上各个注释的运行次序:

selenium2中的TestNg注解和数据驱动的简介及使用-LMLPHP

@Test

@BeforeMethod/@ AfterMethod

@BeforeClass/@AfterClass

@BeforeSuite/@AfterSuite 

TestNg的数据驱动

TestNg数据驱动的实现

TestNg用XML运行

以class为基本点

以method为基本点

以package为基本点

此外TestNg也可以用命令行运行,具体可参考:

http://www.cnblogs.com/zhangfei/archive/2012/11/26/2788946.html

亲自试过的,没有任何问题。结果会打印到cmd的窗口中,且在目录下会生成test-output文件夹,如下所示:

selenium2中的TestNg注解和数据驱动的简介及使用-LMLPHP

TestNg用例管理

遵循的原则是用例独立少依赖

具体代码如下:

testNg.java文件代码如下:

 package com.selenium.test;

 import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; public class testNg {
public static WebDriver Driver; @BeforeClass
public void beforeClass() {
System.out.println("beforeClass: open the browser.");
} @AfterClass
public void afterClass() {
System.out.println("afterClass: close the browser.");
Driver.quit();
} @BeforeMethod
public void setUp() {
System.out.println("setUp");
startFireFox("http://baidu.com");
} @AfterMethod
public void tearDown() {
System.out.println("tearDown");
Driver.close();
} @Test(dataProvider = "user")
public void testBaidu(String text) {
System.out.println(text);
Driver.findElement(By.id("kw")).sendKeys(text);
} // 由于user没有指定name,所以直接使用方法名user
@Test(dataProvider = "user")
public void testUser(String text) {
System.out.println(text);
} // 由于score指定name=scoreForUser,所以使用scoreForUser
@Test(dataProvider = "scoreForUser")
public void testScore(String text) {
System.out.println(text);
} // 虽然score指定name=scoreForUser, 但也可以直接使用方法名score
@Test(dataProvider = "score")
public void testScoreAgain(String text) {
System.out.println(text);
} @DataProvider
public Object[][] user() {
return new Object[][] { { "zhangsan" }, { "lisi" } };
} // 这种方式是给DataProvider重命名为sourceForUser
@DataProvider(name = "scoreForUser")
public Object[][] score() {
return new Object[][] { { "90" }, { "100" } };
} public static void startFireFox(String url) {
Driver = new FirefoxDriver();
Driver.manage().window().maximize();
Driver.navigate().to(url);
} // public static void closeFireFox() {
// Driver.close();
// Driver.quit();
// }
}

testPackage.xml具体代码如下:

 <?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="Test1">
<packages>
<package name="com.selenium.test" />
</packages>
</test>
</suite>

testClass.xml具体代码如下:

 <?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="Test1">
<classes>
<class name="com.selenium.test.testNg" />
</classes>
</test>
</suite>

testMethod.xml具体代码如下:

 <?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" verbose="1" parallel="false" thread-count="1">
<test name="Test1">
<classes>
<class name="com.selenium.test.testNg" />
<methods>
<include name="testBaidu" />
</methods>
</classes>
</test>
</suite>

最后打个广告,不要介意哦~

最近我在Dataguru学了《软件自动化测试Selenium2》网络课程,挺不错的,你可以来看看!要是想报名,可以用我的优惠码 G863,立减你50%的固定学费!

链接:http://www.dataguru.cn/invite.php?invitecode=G863

05-21 16:54