TestNG基础
来源:互联网 发布:大学生网络成瘾的原因 编辑:程序博客网 时间:2024/05/19 09:03
阅读目录
TestNG介绍
TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便
Java中已经有一个JUnit的测试框架了。 TestNG比JUnit功能强大的多。 测试人员一般用TestNG来写自动化测试。 开发人员一般用JUnit写单元测试。
官方网站: http://testng.org/doc/index.html
在Eclipse中在线安装TestNG
打开Eclipse Help ->Install New Software , 然后Add "http://beust.com/eclipse"
在Eclipse中离线安装Testng
首先下载testng离线包: http://pan.baidu.com/s/1hrEaX6k
1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下
2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9.8.201510130443 文件夹 放到 eclipse--》plugins目录下
3. 重启eclipse
TestNG最简单的测试
下面是TestNG的最简单的一个例子
复制代码
package TankLearn2.Learn;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.testng.annotations.Test;
public class TestNGLearn1 {
@BeforeClass
public void beforeClass() {
System.out.println("this is before class");
}
@Test
public void TestNgLearn() {
System.out.println("this is TestNG test case");
}
@AfterClass
public void afterClass() {
System.out.println("this is after class");
}
}
TestNG的基本注解
TestNG中如何执行测试
第一种直接执行:右键要执行的方法, 点Run As ->TestNG Test
使用testtng.xml 文件执行 case
第二种: 通过testng.xml文件来执行. 把要执行的case, 放入testng.xml文件中。 右键点击testng.xml, 点Run As
testng.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12">
<classes>
<class name="TankLearn2.Learn.TestNGLearn1" />
</classes>
</test>
</suite>
TestNG按顺序执行Case
在testng.xml中,可以控制测试用例按顺序执行。 当preserve-order="true"是,可以保证节点下面的方法是按顺序执行的
TestNG异常测试
测试中,有时候我们期望某些代码抛出异常。
TestNG通过@Test(expectedExceptions) 来判断期待的异常, 并且判断Error Message
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class ExceptionTest {
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp="NullPoint")
public void testException(){
throw new IllegalArgumentException("NullPoint");
}
}
TestNG组测试
TestNG中可以把测试用例分组,这样可以按组来执行测试用例比如:
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class GroupTest {
@Test(groups = {"systemtest"})
public void testLogin(){
System.out.println("this is test login");
}
@Test(groups = {"functiontest"})
public void testOpenPage(){
System.out.println("this is test Open Page");
}
}
复制代码
然后在testng.xml中 按组执行测试用例
复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<groups>
<run>
<include name="functiontest" />
</run>
</groups>
</test>
</suite>
复制代码
TestNG参数化测试
软件测试中,经常需要测试大量的数据集。 测试代码的逻辑完全一样,只是测试的参数不一样。 这样我们就需要一种 “传递测试参数的机制”。 避免写重复的测试代码
TestNG提供了2种传递参数的方式。
第一种: testng.xml 方式使代码和测试数据分离,方便维护
第二种:@DataProvider能够提供比较复杂的参数。 (也叫data-driven testing)
方法一: 通过testng.xml 传递参数给测试代码
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class ParameterizedTest1 {
@Test
@Parameters("test1")
public void ParaTest(String test1){
System.out.println("This is " + test1);
}
}
复制代码
testng.xml
复制代码
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<parameter name="test1" value="Tank" />
<parameter name="test1" value="Xiao" />
<test name="test12">
<classes>
<class name="TankLearn2.Learn.ParameterizedTest1" />
</classes>
</test>
</suite>
复制代码
方式二: 通过DataProvider传递参数
复制代码
package TankLearn2.Learn;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataProviderLearn {
@DataProvider(name="user")
public Object[][] Users(){
return new Object[][]{
{"root","passowrd"},
{"cnblogs.com", "tankxiao"},
{"tank","xiao"}
};
}
@Test(dataProvider="user")
public void verifyUser(String userName, String password){
System.out.println("Username: "+ userName + " Password: "+ password);
}
}
复制代码
TestNG忽略测试
有时候测试用例还没准备好, 可以给测试用例加上@Test(enable = false), 来禁用此测试用例
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class TesgNGIgnore {
@Test(enabled = false)
public void testIgnore(){
System.out.println("This test case will ignore");
}
}
复制代码
TestNG 依赖测试
有时候,我们需要按顺序来调用测试用例, 那么测试用例之间就存在依赖关系。 TestNG支持测试用例之间的依赖
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class DependsTest {
@Test
public void setupEnv(){
System.out.println("this is setup Env");
}
@Test(dependsOnMethods = {"setupEnv"})
public void testMessage(){
System.out.println("this is test message");
}
}
复制代码
TestNG测试结果报告
测试报告是测试非常重要的部分.
TestNG默认情况下,会生产两种类型的测试报告HTML的和XML的。 测试报告位于 "test-output" 目录下.
当然我们也可以设置测试报告的内容级别.
verbose="2" 标识的就是记录的日志级别,共有0-10的级别,其中0表示无,10表示最详细
复制代码
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12" verbose="2">
<classes>
<class name="TankLearn2.Learn.TestNGLearn1" />
</classes>
</test>
</suite>
TestNG介绍
在Eclipse中在线安装TestNG
在Eclipse中离线安装Testng
TestNG最简单的测试
TestNG的基本注解
TestNG中如何执行测试
使用testtng.xml 文件执行 case
TestNG按顺序执行Case
TestNG异常测试
TestNG组测试
TestNG参数化测试
TestNG忽略测试
TestNG 依赖测试
TestNG测试结果报告
在Eclipse中在线安装TestNG
在Eclipse中离线安装Testng
TestNG最简单的测试
TestNG的基本注解
TestNG中如何执行测试
使用testtng.xml 文件执行 case
TestNG按顺序执行Case
TestNG异常测试
TestNG组测试
TestNG参数化测试
TestNG忽略测试
TestNG 依赖测试
TestNG测试结果报告
TestNG介绍
TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便
Java中已经有一个JUnit的测试框架了。 TestNG比JUnit功能强大的多。 测试人员一般用TestNG来写自动化测试。 开发人员一般用JUnit写单元测试。
官方网站: http://testng.org/doc/index.html
在Eclipse中在线安装TestNG
打开Eclipse Help ->Install New Software , 然后Add "http://beust.com/eclipse"
在Eclipse中离线安装Testng
首先下载testng离线包: http://pan.baidu.com/s/1hrEaX6k
1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下
2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9.8.201510130443 文件夹 放到 eclipse--》plugins目录下
3. 重启eclipse
4. 验证是否安装成功,file-->new-->other-->TestNg
TestNG最简单的测试
下面是TestNG的最简单的一个例子
复制代码
package TankLearn2.Learn;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.testng.annotations.Test;
public class TestNGLearn1 {
@BeforeClass
public void beforeClass() {
System.out.println("this is before class");
}
@Test
public void TestNgLearn() {
System.out.println("this is TestNG test case");
}
@AfterClass
public void afterClass() {
System.out.println("this is after class");
}
}
TestNG的基本注解
TestNG中如何执行测试
第一种直接执行:右键要执行的方法, 点Run As ->TestNG Test
使用testtng.xml 文件执行 case
第二种: 通过testng.xml文件来执行. 把要执行的case, 放入testng.xml文件中。 右键点击testng.xml, 点Run As
testng.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12">
<classes>
<class name="TankLearn2.Learn.TestNGLearn1" />
</classes>
</test>
</suite>
TestNG按顺序执行Case
在testng.xml中,可以控制测试用例按顺序执行。 当preserve-order="true"是,可以保证节点下面的方法是按顺序执行的
TestNG异常测试
测试中,有时候我们期望某些代码抛出异常。
TestNG通过@Test(expectedExceptions) 来判断期待的异常, 并且判断Error Message
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class ExceptionTest {
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp="NullPoint")
public void testException(){
throw new IllegalArgumentException("NullPoint");
}
}
TestNG组测试
TestNG中可以把测试用例分组,这样可以按组来执行测试用例比如:
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class GroupTest {
@Test(groups = {"systemtest"})
public void testLogin(){
System.out.println("this is test login");
}
@Test(groups = {"functiontest"})
public void testOpenPage(){
System.out.println("this is test Open Page");
}
}
复制代码
然后在testng.xml中 按组执行测试用例
复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<groups>
<run>
<include name="functiontest" />
</run>
</groups>
</test>
</suite>
复制代码
TestNG参数化测试
软件测试中,经常需要测试大量的数据集。 测试代码的逻辑完全一样,只是测试的参数不一样。 这样我们就需要一种 “传递测试参数的机制”。 避免写重复的测试代码
TestNG提供了2种传递参数的方式。
第一种: testng.xml 方式使代码和测试数据分离,方便维护
第二种:@DataProvider能够提供比较复杂的参数。 (也叫data-driven testing)
方法一: 通过testng.xml 传递参数给测试代码
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class ParameterizedTest1 {
@Test
@Parameters("test1")
public void ParaTest(String test1){
System.out.println("This is " + test1);
}
}
复制代码
testng.xml
复制代码
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<parameter name="test1" value="Tank" />
<parameter name="test1" value="Xiao" />
<test name="test12">
<classes>
<class name="TankLearn2.Learn.ParameterizedTest1" />
</classes>
</test>
</suite>
复制代码
方式二: 通过DataProvider传递参数
复制代码
package TankLearn2.Learn;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataProviderLearn {
@DataProvider(name="user")
public Object[][] Users(){
return new Object[][]{
{"root","passowrd"},
{"cnblogs.com", "tankxiao"},
{"tank","xiao"}
};
}
@Test(dataProvider="user")
public void verifyUser(String userName, String password){
System.out.println("Username: "+ userName + " Password: "+ password);
}
}
复制代码
TestNG忽略测试
有时候测试用例还没准备好, 可以给测试用例加上@Test(enable = false), 来禁用此测试用例
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class TesgNGIgnore {
@Test(enabled = false)
public void testIgnore(){
System.out.println("This test case will ignore");
}
}
复制代码
TestNG 依赖测试
有时候,我们需要按顺序来调用测试用例, 那么测试用例之间就存在依赖关系。 TestNG支持测试用例之间的依赖
复制代码
package TankLearn2.Learn;
import org.testng.annotations.Test;
public class DependsTest {
@Test
public void setupEnv(){
System.out.println("this is setup Env");
}
@Test(dependsOnMethods = {"setupEnv"})
public void testMessage(){
System.out.println("this is test message");
}
}
复制代码
TestNG测试结果报告
测试报告是测试非常重要的部分.
TestNG默认情况下,会生产两种类型的测试报告HTML的和XML的。 测试报告位于 "test-output" 目录下.
当然我们也可以设置测试报告的内容级别.
verbose="2" 标识的就是记录的日志级别,共有0-10的级别,其中0表示无,10表示最详细
复制代码
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test12" verbose="2">
<classes>
<class name="TankLearn2.Learn.TestNGLearn1" />
</classes>
</test>
</suite>
阅读全文
0 0
- TestNG基础
- TestNG 一 基础概念
- TestNG 基础概念
- TestNG-基础概念
- TestNG 基础用法
- TestNG·一 基础概念
- TestNG·一 基础概念
- TestNG
- testng
- testng
- TestNG
- TestNG
- TestNG
- TestNG
- testng
- TestNG
- testNG
- TestNG
- HDU 4825 Xor Sum(01字典树+异或)
- java面试题(一)
- iframe 子页面自适应高度问题
- Qt之createObject
- Java 8 Streams API 详解
- TestNG基础
- anaconda命令用法
- 利用django-suit模板在管理后台添加自定义的菜单和自定义的页面、设置访问权限
- 树莓派做(nginx、Apache)web服务器
- MySql数据库查询时大小写敏感问题
- ubuntu安装注册gitlab_runner
- 解决GridView与scrollview嵌套时GridView显示一行数据
- [LintCode 138] 子数组之和(Python)
- 关于android urlHttpConnection中setDoOutput和setDoInput走过的坑