TestNG执行测试
使用TestNG类执行测试用例。这个类的主入口点在TestNG的框架运行测试。用户可以创建自己的TestNG的对象,并调用它以许多不同的方式:
-
在现有的testng.xml
-
合成testng.xml,完全从Java创建
-
直接设定测试类
您还可以定义哪些群体包括或排除,分配参数,命令行参数:
-d outputdir: 指定输出目录
-testclass class_name: 指定了一个或多个类名
-testjar jar_name: 指定的jar包含测试
-sourcedir src1;src2: ; 分隔源目录列表(只有当使用的javadoc注释)
-target
-groups
-testrunfactory
-listener
testng.xml现有在下面的例子中,我们将创建TestNG的对象。
创建一个类
-
创建一个Java类进行测试为 MessageUtil.java 在 C:\ > TestNG_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public String printMessage(){
System.out.println(message);
return message;
}
}
创建测试例类
-
创建一个Java测试类 SampleTest.java
-
您的测试类添加一个的测试方法testPrintMessage()
-
添加注释@Test 到方法 testPrintMessage()
-
实现测试条件和使用的assertEquals API TestNG的检查条件
创建一个Java类文件名 SampleTest.java在 C:\ > TestNG_WORKSPACE
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
Assert.assertEquals(message, messageUtil.printMessage());
}
}
创建 testng.xml
接下来,让我们创建testng.xml文件在 C:\ > TestNG_WORKSPACE 执行测试用例,此文件捕获整个测试XML。这个文件可以很容易地描述所有的测试套件和它们的参数在一个文件中,你可以检查你的代码库或e-mail给同事。这也使得它容易提取测试或分裂的几个运行时配置的子集(例如,TestNG的database.xml 只能运行测试,行使数据库)。
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Sample test Suite">
<test name="Sample test">
<classes>
<class name="SampleTest" />
</classes>
</test>
</suite>
情况下使用javac编译测试
C:\TestNG_WORKSPACE>javac MessageUtil.java SampleTest.java
现在,运行这个 testng.xml,将运行中定义的测试用例 <test> 标签
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出。
Hello World
===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
TestNG自动化测试框架入门到实战https://edu.csdn.net/course/detail/39543
TestNG自动化测试框架入门到实战https://edu.csdn.net/course/detail/39543
TestNG套件测试
测试套件的测试是为了测试软件程序的行为或一系列行为的情况下,是一个集合。在TestNG,我们不能定义一套测试源代码,但它代表的套件是一个XML文件执行特征。这也允许灵活的配置要运行的测试。套件可以包含一个或多个测试和被定义由<suite>标签。
testng.xml中有<suite>根标签。它描述了一个测试套件,这反过来又是由多个<test>区段组成。
下表列出了所有的<suite>可接受合法属性。
属性 | 描述 |
---|---|
name | 此套件的名称。这是一个强制性的属性。 |
verbose | 这个运行级别或冗长。 |
parallel | 由TestNG 运行不同的线程来运行此套件。 |
thread-count | 使用的线程数,如果启用并行模式(忽略其他方式)。 |
annotations | 在测试中使用注释的类型。 |
time-out | 默认的超时时间,将用于本次测试中发现的所有测试方法。 |
在本章中,我们会告诉你一个例子,有两个Test1 & Test2测试类一起运行测试套件。
创建一个类
创建一个Java类进行测试 MessageUtil.java 在 C:\ > JUNIT_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
// Constructor
// @param message to be printed
public MessageUtil(String message) {
this.message = message;
}
// prints the message
public String printMessage() {
System.out.println(message);
return message;
}
// add "Hi!" to the message
public String salutationMessage() {
message = "Hi!" + message;
System.out.println(message);
return message;
}
}
创建测试用例类
创建一个Java类文件名 Test1.java 在C:\ > TestNG_WORKSPACE
import org.testng.Assert;
import org.testng.annotations.Test;
public class Test1 {
String message = "Manisha";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
Assert.assertEquals(message, messageUtil.printMessage());
}
}
创建一个Java类文件名 Test2.java 在C:\ > TestNG_WORKSPACE
import org.testng.Assert;
import org.testng.annotations.Test;
public class Test2 {
String message = "Manisha";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Manisha";
Assert.assertEquals(message,messageUtil.salutationMessage());
}
}
现在,让我们编辑写入testng.xml 在C:\ > TestNG_WORKSPACE ,将包含<suite>标签如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="exampletest1">
<classes>
<class name="Test1" />
</classes>
</test>
<test name="exampletest2">
<classes>
<class name="Test2" />
</classes>
</test>
</suite>
Suite1 包括 exampletest1 和 exampletest2.
所有Java类编译使用javac。
C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java
现在运行 testng.xml,将运行提供的测试用例类中定义的测试用例。
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出。
Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha
===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================
您也可以检查测试输出文件夹;下Suite1文件夹中,可以看到两个HTML创建的exampletest1.html 和 exampletest2.html 内容如下:
TestNG自动化测试框架入门到实战https://edu.csdn.net/course/detail/39543