How to access Test plan’s keys (variables) using ISuite suite.
Recently, I had a requirement to get a value from Test plan xml file to a onStart method in SuiteListener class which implements ISuiteListener
public class SuiteListener implements ISuiteListener {
@Override//This is equal to before Suite.
public void onStart(ISuite suite) {
}
}
To solve that I used suite.getAttribute method.
public void onStart(ISuite suite) {
String value = (String) suite.getAttribute("browserVersion");
String browserVersion= suite.getXmlSuite().getParameter("browserVersion");System.out.println("browserVersion is "+browserVersion);
}
So it’s output the below output.
browserVersion is 95
My Test plan is like below.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite thread-count="2" name="Problem-Management-Suite" parallel="tests">
<listeners>
<listener class-name="com.sam.reporting.SuiteListener" />
<listener class-name="com.sam.reporting.Listeners" />
</listeners>
<parameter name="browser" value="Chrome" />
<parameter name="browserVersion" value="95" /><test name="test name-01">
<classes>
<class name="com.sam.testcases..TC_01"/>
</classes>
</test> <!-- Test -->
</suite>