TestNg基础
NewTest类
package com.com.sxf;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;
public class NewTest {
@Test
public void f() {
System.out.println("1");
}
@Test
public void f2() {
System.out.println("2");
}
@Test
public void f1() {
System.out.println("3");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("afterMethod");
}
@BeforeClass
public void beforeClass() {
System.out.println("beforeclass");
}
@AfterClass
public void afterClass() {
System.out.println("afterclass");
}
@BeforeTest
public void beforeTest() {
System.out.println("beforeTest");
}
@AfterTest
public void afterTest() {
System.out.println("afterTest");
}
@BeforeSuite
public void beforeSuite() {
System.out.println("beforeSuite");
}
@AfterSuite
public void afterSuite() {
System.out.println("afterSuite");
Means means=new Means();
int result=means.add(2,3);
int target=5;
Assert.assertEquals(target, result);
}
}
NewDemo类
package com.com.sxf;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;
public class Newdemo {
@Test
public void f() {
}
@BeforeMethod
public void beforeMethod() {
}
@AfterMethod
public void afterMethod() {
}
@BeforeClass
public void beforeClass() {
}
@AfterClass
public void afterClass() {
}
@BeforeTest
public void beforeTest() {
}
@AfterTest
public void afterTest() {
}
@BeforeSuite
public void beforeSuite() {
}
@AfterSuite
public void afterSuite() {
Means menas=new Means();
int result=menas.sub(4, 1);
int target=31;
Assert.assertEquals(target, result);
}
}
Means类
package com.com.sxf;
public class Means {
public int add(int a,int b) {
return a+b;
}
public int sub(int a,int b) {
return a-b;
}
}
MyTest.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- 服务器1009 -->
<suite name="Default suite">
<test verbose="2" name="Default test">
<parameter name="testFilePath" value="excel/服务器1009.xlsx"></parameter>
<parameter name="testResultDirPath" value="result"></parameter>
<classes>
<class name="com.com.sxf.NewTest" />
<class name="com.com.sxf.Newdemo"/>
</classes>
</test>
</suite>
package com.com.sxf;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.AssertJUnit;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class Search {
//传递参数
@DataProvider
public Object[][] ValidDataProvider() {
return new Object[][]{
{ “name”,“shixinfa” }
};
}
@Test(dataProvider = “ValidDataProvider”)
public void CharToASCIITest(final String name,String names) {
String[] result= {name,names};
String[] data= {“name”,“shixinfa”};
Assert.assertEquals(data,result);
}
//线程负载
@Test(invocationCount = 3, threadPoolSize = 3)
public void loadTestThisWebsite() {
int a=2+3;
System.out.println(a);
}
//不被执行的方法
@Test(enabled = false)
public void test3() {
Assert.assertEquals(true, true);
}
//超时测试
@Test(timeOut=4000)
public void test4() throws InterruptedException {
Thread.sleep(6000);
}
//预期bug测试
@Test(expectedExceptions = ArithmeticException.class)
public void divisionWithException() {
int i = 1 / 0;
System.out.println("After division the value of i is :"+ i);
}
testsuit.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Simple Suite">
<listeners>
<listener class-name="myListener" />
</listeners>
<test name="Simple test">
<classes>
<class name="SampleTest" />
</classes>
</test>
</suite>
执行测试的类
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class myListener extends TestListenerAdapter {
private int m_count = 0;
@Override
public void onTestFailure(ITestResult tr) {
log(tr.getName()+ "--sssTest method failed\n");
}
@Override
public void onTestSkipped(ITestResult tr) {
log(tr.getName()+ "--sssTest method skipped\n");
}
@Override
public void onTestSuccess(ITestResult tr) {
log(tr.getName()+ "--sssTest method success\n");
}
private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
}
}
被监听的类
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
@Test
public void testMethodOne(){
Assert.assertTrue(true);
}
@Test
public void testMethodTwo(){
Assert.assertTrue(false);
}
@Test(dependsOnMethods={"testMethodTwo"})
public void testMethodThree(){
Assert.assertTrue(true);
}
}
数据提供
测试代码
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class ParamTestWithDataProvider1 {
@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] { { 2, true ,"hi"}, { 6, true ,"test"}, { 19, true ,"good"},
{ 22, true ,"aha"}, { 23, true ,"loo"} };
}
//参数必须要一致
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Integer inputNumber,Boolean expectedResult, String test) {
System.out.println(inputNumber + " " + expectedResult+" "+test);
Assert.assertEquals(expectedResult,validate(inputNumber));
}
private Object validate(Integer inputNumber) {
return inputNumber>20;
}
}
测试结果
[RemoteTestNG] detected TestNG version 6.14.2
2 true hi
6 true test
19 true good
22 true aha
23 true loo
PASSED: testPrimeNumberChecker(22, true, "aha")
PASSED: testPrimeNumberChecker(23, true, "loo")
FAILED: testPrimeNumberChecker(2, true, "hi")
java.lang.AssertionError: expected [false] but found [true]
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.testng.Reporter;
import org.testng.annotations.Test;
public class BorwserEngin{
@Test
public void f() throws IOException {
BorwserEngin borwser=new BorwserEngin();
Reporter.log("我在打印日志sxfsxf");
}
}
778

被折叠的 条评论
为什么被折叠?



