<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite">
<test verbose="1" preserve-order="true" name="C:\Users\wumin\Downloads\XunitDemo-master\XunitDemo-master" >
<groups>
<dependencies>
<group name="1" depends-on="">
<classes>
<class name="TestXunit.LoginTest">
<methods>
<include name="testUserLogin0"></include>
<exclude name="testUserLogin1"></exclude>
<include name="testUserLogin2"></include>
<include name="testUserLogin3"></include>
</methods>
</class>
</classes>
</group>
</dependencies>
</groups>
</test>
</suite
<!--<classes>-->
<!--<class name="DemoXunit.LoginTest">-->
<!--<methods>-->
<!--<include name="testLogin"/>-->
<!--</methods>-->
<!--</class>-->
<!--<class name="DemoXunit.ShoppingTest">-->
<!--<methods>-->
<!--<include name="testLogin"/>-->
<!--<include name="testLoginAndShopping"/>-->
<!--<include name="testDatas"/>-->
<!--</methods>-->
<!--</class>-->
<!--<class name="DemoXunit.ParamDataTest">-->
<!--<methods>-->
<!--<parameter name="aa" value="AA"/>-->
<!--<parameter name="bb" value="BB"/>-->
<!--<include name="testParams"/>-->
<!--</methods>-->
<!--</class>-->
<!--</classes>-->
testng 目录结构 : suit -test->group->depenceies->group->classes ->class->method
testng 方法忽略测试 <method>节点底下加
<exclude name="testUserLogin1"></exclude>
testng 其他功能:
参数化(通过xml文件参数化)
1.抽象出公共测试方法
@Test public void testUserLogin(String name1,String pwd1,String except1){ Login login = new Login(); String ac = login.userLogin(name1,pwd1); Assert.assertEquals(except1,ac); }
2.在testng.xml文件中<method>节点增加
parameter
<methods>
<parameter name="name" value="zhangsan"></parameter>
<parameter name="pwd" value="123"></parameter>
<parameter name="except" value="欢迎zhangsan"></parameter>
<include name="testUserLogin"></include>
</methods>
3.在test方法上增加
Parameters注解
@Parameters({"name","pwd","except"})
@Test
public void testUserLogin(String name1,String pwd1,String except1){
Login login = new Login();
String ac = login.userLogin(name1,pwd1);
Assert.assertEquals(except1,ac);
}
通过 DataProvide 进行参数化
1.提供数据类
package LoginData;
import org.testng.annotations.DataProvider;
public class Login1Params {
@DataProvider
public Object [][] getUsers(){
return new Object[][]{
{"zhangsan","1234","欢迎zhangsan"},
{"lisi","","用户名或密码不能为空"},
{"admin","121","欢迎管理员"},
};
}
}
2.@test增加属性
package TestXunit;
import DemoXunit.Login;
import LoginData.Login1Params;
import LoginData.LoginParams;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
/**
* Created by duzhe on 2018/12/23.
*
* @Description:
*/
public class LoginTest {
// @Parameters({"name","pwd","except"})
@Test(dataProvider = "getUsers",dataProviderClass = Login1Params.class)
public void testUserLogin(String name1,String pwd1,String except1){
Login login = new Login();
String ac = login.userLogin(name1,pwd1);
Assert.assertEquals(except1,ac);
}
}
参考链接:https://www.cnblogs.com/qiaoyeye/p/5038553.html
maven pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>XunitDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng1.xml</suiteXmlFile>
<suiteXmlFile>testng2.xml</suiteXmlFile>
</suiteXmlFiles>
<!--<parallel>methods</parallel>-->
<!--<threadCount>2</threadCount>-->
</configuration>
</plugin>
<!--<plugin>-->
<!--<groupId>org.apache.maven.plugins</groupId>-->
<!--<artifactId>maven-compiler-plugin</artifactId>-->
<!--<configuration>-->
<!--<source>1.6</source>-->
<!--<target>1.6</target>-->
<!--</configuration>-->
<!--</plugin>-->
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>