使用testng xml文件覆盖属性文件

时间:2017-01-11 23:00:17

标签: java testng testng-dataprovider

如何从testng.xml文件中的值覆盖属性文件值。

Eg: Have 3 properties file 
a.properties
#This property file contains host url and userid and env
hosturl=abcd.com
uid=xyz

similarly other b.properties

现在当我作为testng.xml套件运行时,需要从testng.xml中选择参数,其中包含与hosturl和uid相同的参数。

〜nerdlearner

1 个答案:

答案 0 :(得分:1)

以下是您如何构建此内容。

  • 您首先需要构建一个配置管理器,该管理器利用apache commons configurations之类的库,并从所有3个配置属性中提取并初始化。
  • 然后构建一个TestNG侦听器,它实现ITestListener(或)ISuiteListener(或)两者,其中onStart()方法中使用{{1}提取所有参数(在org.testng.ISuite.getXmlSuite.getParameters())(或)ISuiteListener的情况下,然后将其传递给配置管理器(在前面的步骤中构建),以便它可以通过套件或通过传递的参数更新自身org.testng.ITestContext.getCurrentXmlTest().getLocalParameters()代码。

现在,您的测试只会查询传递密钥并获取其值的配置管理器。由于配置管理器现在知道属性文件和testng xml文件,它将以您需要的方式工作。