TestNG参数是我们传递给测试方法的参数。我们可以通过两种方式将参数传递给测试方法:
- TestNG参数
- TestNG数据提供者
假设我们要设置全局变量, 例如url设置, 用户名, 密码或API密钥, 那么在所有测试用例中都有一些恒定的值, 在这种情况下, 我们使用TestNG参数。
TestNG参数存在于xml文件中。它们可以应用于标签内或标签内。如果我们想将参数应用于所有测试用例, 则将参数应用于标签内。如果参数特定于特定文件夹, 则该参数将应用于标签中。
让我们通过一个例子来理解。
第一种情况:在标签下方应用参数时。
步骤1:打开Eclipse。
步骤2:我们创建三个类文件, 即Sum.java, Subtract.java和Multiply.java。
Sum.java
package com.srcmini;
import org.testng.annotations.Test;
import org.testng.annotations.Parameters;
public class Sum {@Test@Parameters({"a", "b"})public void add(int c, int d){int sum=c+d;
System.out.println("Sum of two numbers : "+sum);
}}
Subtract.java
package com.srcmini;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Subtract {@Test@Parameters({"a", "b"})public void add(int c, int d){int subtract=c-d;
System.out.println("Subtraction of two numbers : "+subtract);
}}
Multiply.java
package com.srcmini;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Multiply {@Test@Parameters({"a", "b"})public void add(int c, int d){int mul=c*d;
System.out.println("Multiplication of two numbers : "+mul);
}}
步骤3:现在, 我们创建testng.xml文件。
testng.xml
<
?xml version="1.0" encoding="UTF-8"?>
<
!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<
suite name="Suite">
<
parameter name="a" value="http://www.srcmini.com/5"/>
<
parameter name="b" value="http://www.srcmini.com/3"/>
<
test name="Sum">
<
classes>
<
class name= "com.srcmini.Sum"/>
<
/classes>
<
/test>
<
!-- Test -->
<
test name="Subtract">
<
classes>
<
class name="com.srcmini.Subtract"/>
<
/classes>
<
/test>
<
test name="Multiply">
<
classes>
<
class name="com.srcmini.Multiply"/>
<
/classes>
<
/test>
<
/suite>
<
!-- Suite -->
在上面的testng.xml文件中, 我们将有效的参数传递给所有类。
步骤4:运行testng.xml文件。
输出
文章图片
第二种情况:参数是特定的。
步骤1:打开Eclipse。
步骤2:我们创建两个类文件。即Fruits.java和Vegetable.java。
Fruits.java
package com.srcmini;
import org.testng.annotations.Test;
import org.testng.annotations.Parameters;
public class Fruits {@Test@Parameters("mango")public void mango(String m){System.out.println("Fruits names are:");
System.out.println(m);
}@Test@Parameters("orange")public void orange(String o){System.out.println(o);
}}
Vegetable.java
package com.srcmini;
import org.testng.annotations.Test;
import org.testng.annotations.Parameters;
public class Vegetable {@Test@Parameters("Cauliflower")public void c(String m){System.out.println("Vegetable names are :");
System.out.println(m);
}@Test@Parameters("Ladyfinger")public void orange(String l){System.out.println(l);
}}
步骤3:现在, 我们创建testng.xml文件。
<
?xml version="1.0" encoding="UTF-8"?>
<
!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<
suite name="Suite">
<
test name="Fruits">
<
parameter name="mango" value="http://www.srcmini.com/mango"/>
<
parameter name="orange" value="http://www.srcmini.com/orange"/>
<
classes>
<
class name= "com.srcmini.Fruits"/>
<
/classes>
<
/test>
<
test name="Vegetables">
<
parameter name="Cauliflower" value="http://www.srcmini.com/Cauliflower"/>
<
parameter name="Ladyfinger" value="http://www.srcmini.com/Ladyfinger"/>
<
classes>
<
class name= "com.srcmini.Vegetable"/>
<
/classes>
<
/test>
<
/suite>
<
!-- Suite -->
在上面的testng.xml中, 我们在特定文件夹中指定参数, 这意味着参数将应用于该文件夹特定的那些类。
步骤4:运行testng.xml文件。
【TestNG注解属性用法示例】输出
文章图片
推荐阅读
- UML教程入门介绍
- TestNG组测试实例详细图解
- Android中为什么主线程不会因为Looper.loop()方法造成阻塞
- 安卓手机调试日志
- centos启动 报错 /dev/mapper/debian--vg-root无法进系统
- 1-Android开发验证码(使用第三方Mob,注册)
- android studio定时器
- adb提取安卓app运行日志
- Java Service Wrapper 浅谈