TestNg它@Factory详细解释------如何更改参数值测试

原创文章,版权所有所有。转载,归因:http://blog.csdn.net/wanghantong

TestNg@Factory注解从字面意思上来讲就是採用工厂的方法来创建測试数据并配合完毕測试

其主要应对的场景是:对于某一个測试用例或方法,我们须要输入多个測试数据进行測试,而且这些測试数据能够是有一定关系(能够通过代码控制)

此时。我们就能够把自己主动化或者手动測试时遇到的仅仅因測试数据不同的多个測试用例合并成一个測试用例。来进行更方便和快捷的測试,

对编写自己主动化測试代码人员节省了非常多时间

策略:一般我们会在标有@Factory注解的方法中对測试类进行调用。这时TestNg会自己主动调用測试类中带有@Test注解的方法

java code:

/**
 * 
 * <p>
 * Title: TestngFactory
 * </p>
 * 
 * <p>
 * Description: 配置文件:testng-factory.xml
 * 
 * TestngFactory工厂类,在带有@Factory注解的方法中调用被运行的測试类,TestNg会自己主动调用被运行类中带有@Test注解的方法,
 * 被运行的測试类为:TestngFactoryTest,
 * </p>
 * 
 * <p>
 * Company:
 * </p>
 * 
 * @author : Dragon
 * 
 * @date : 2014年10月22日
 */
public class TestngFactory {
	@Factory
	public Object[] createInstances() {
		Object[] result = new Object[10];
		for (int i = 0; i < 10; i++) {
			result[i] = new TestngFactoryTest(i * 10);
		}
		return result;
	}
}

public class TestngFactoryTest {
	private int m_numberOfTimes;

	public TestngFactoryTest(int numberOfTimes) {
		this.m_numberOfTimes = numberOfTimes;
	}

	private static int num;

	@Test
	public void testServer() {
		num++;
		System.out.println("num    " + num + "  m_numberOfTimes :"
				+ m_numberOfTimes);
	}
}



配置文件:仅仅须要配置带有@Factory注解的类就可以

<?xml version="1.0" encoding="UTF-8"?

> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!-- allow-return-values 默认值为FALSE,表示返回值将被忽略 --> <suite name="framework_testng" allow-return-values="true"> <test verbose="2" name="TestMethods"> <classes> <class name="com.dragon.testng.annotation.TestngFactory"> </class> </classes> </test> </suite>


測试结果:

num    1  m_numberOfTimes :30
num    2  m_numberOfTimes :20
num    3  m_numberOfTimes :70
num    4  m_numberOfTimes :60
num    5  m_numberOfTimes :90
num    6  m_numberOfTimes :50
num    7  m_numberOfTimes :10
num    8  m_numberOfTimes :0
num    9  m_numberOfTimes :40
num    10  m_numberOfTimes :80
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer

===============================================
    TestMethods
    Tests run: 10, Failures: 0, Skips: 0
===============================================


原创文章。版权全部,同意转载,标明出处:http://blog.csdn.net/wanghantong

TestNg的工厂測试引用@DataProvider数据源----灵活使用工厂測试


——要知道别人光鲜的背后有着太多不为人知的痛苦。自己不喜欢的人,报之以微笑。默默为他祝福;对喜欢的人。真情流露、真诚相待就好。人在做天在看,冥冥中自有因果在安排,永远怀着一颗善良的心,持续做对的事。时刻提醒自己。改变自己,低调做人,高调做事。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/mfrbuaa/p/4680755.html