Development

To run my Selenium/Cucumber java project, I need to pass some VM arguments, variables, properties path etc… now easiest way is to pass it in Eclipse run configuration under “VM arguments” tab. I need to give path of Log4j2.xml, sqlJdbc driver, any UserID etc.
Now, if i put all this in a properties file and then run the “TestRunner’, then how can i make sure properties are loaded before the Features run. I get NullPointerException.
Can i put this in a static block? THis way will it get initialized before any TestNG feature runs?

@CucumberOptions(glue = { “stepDefinitions” }, features = {
“src/test/resources/features/CreateUserProfile.feature” }, plugin = { “pretty”,
“json:test-output/JsonReport.json”, “html:test-output/HTMLReport.html”,
“com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:”, })

public class TestRunner {
public TestNGCucumberRunner testNGCucumberRunner;

@BeforeClass(alwaysRun = true)
public void setUpClass() {
if (testNGCucumberRunner == null) {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
}

@Test(groups = “cucumber scenarios”, description = “Runs Cucumber Scenarios”, dataProvider = “scenarios”)
public void scenario(PickleWrapper pickleEvent, FeatureWrapper cucumberFeature) throws Throwable {
testNGCucumberRunner.runScenario(pickleEvent.getPickle());
}

@DataProvider
public Object[][] scenarios() {
if (testNGCucumberRunner == null) {
testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
}
return testNGCucumberRunner.provideScenarios();
}

@AfterClass(alwaysRun = true)
public void tearDownClass() {
testNGCucumberRunner.finish();

}

static {
SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd”);
System.setProperty(“current.date”, dateFormat.format(new Date()));
String propertyFilePath = “C:\EclipseWorkspace\Automation\src\main\resources\config.properties”;
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(propertyFilePath));
Properties properties = new Properties();
try {
properties.load(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new RuntimeException(“Config.properties not found at ” + propertyFilePath);
}

}

}

UPDATE:
I get this error …i have loaded the properties file in the TestRunner.java file, also loaded in the BaseTest.java class where driver is initialized. Still i get this error. Please help. I don’t want to use eclipse VM arguments and want my properties to be loaded from the script only.
java.lang.NullPointerException: Cannot invoke “String.equalsIgnoreCase(String)” because the return value of “java.lang.System.getProperty(String)” is null

I’m running a test from JMeter sending HTTPS requests to a load balancer that is then distributing the user load across multiple application servers. We have an instance where as the load grows we are seeing Non HTTP response code: org.apache.http.conn.HttpHostConnectException errors reported in JMeter. In this instance we are not seeing the requests making it to any of the application servers.

In order to isolate where the problem lies (Load Balancer or Load Generator) I was attempting to utilize Wireshark to validate request transmission, but it’s unable to provide me with the information due to being HTTPS.

The issue is observed both in a single load generator configuration and JMeter Server configuration with 1 master and 2 load generators. All 3 are using JMeter 5.1.1 and are being hosted on a Windows Server VM.

When interacting with RESTful web services, there’s a depressingly common anti-pattern: always return status 200 OK, but embed a more…

The DistroWatch news feed is brought to you by TUXEDO COMPUTERS. This week in DistroWatch Weekly:
Review: openSUSE 15.6 Leap
News: SUSE Liberty program to extend CentOS Linux support, openSUSE testing Leap Micro edition, SUSE Linux Enterprise receives 19 years of support
Questions and answers: Linux’s unique and special features
Released last week: Tails 6.4, EasyOS 6.0, SUSE Linux Enterprise 15 SP6,….

The DistroWatch news feed is brought to you by TUXEDO COMPUTERS. SDesk is an Arch-based Linux distribution which strives for an easy to use, modern approach to desktop computing. The project’s latest snapshot is version 2024.06.22 which introduces a number of performance improvements, including a new kernel build. The release announcement shares details: “SDesk now uses the “linux-zen” kernel….