The core of every automation project should include the principle that duplication of anything should not happen at any cost whether it's a duplication of code or data or for that matter anything in fact.
Take this example (see pic 1), where we need to execute every method say 5 times each- we all know that it is easily achievable through the TestNG invocation count attribute of the Test annotation. Plus, we want all tests to be re-tried on failure so we can add one more attribute of Test annotation of TestNG i.e. retry analyzer.
I truly believe this is a case of duplication where each method @Test annotation is using 2 attributes: invocation count and retry analyzer.
Did you know that TestNG allows annotations to be used at the test class level to fix this duplication issue? I agree that it's not required always at class level but in case you need it, please follow.
Here, the methods do not have any annotation or attributes because it's getting inherit from the class.
In this case (see pic 2), when you execute the Example class, all its tests run 5 times and are retried in case of any failure.
seleniumautomation testNG automationtesting easier tipsandtricks testing apiautomation avoidDuplication
1) Using Java (Lengthy way) : Create a utility and use it:>> import java.io.BufferedOutputStream; import org.openqa.selenium.io.Zip; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class UnzipUtil { private static final int BUFFER_SIZE = 4096; public void unzip (String zipFilePath, String destDirectory) throws IOException { File destDir = new File(destDirectory); if (!destDir.exists()) { destDir.mkdir(); } ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath)); ZipEntry entry = zipIn.getNextEntry(); // to iterates over entries in the zip folder while (entry != null) { String filePath = destDirectory + File.separator + entry.getName(); if (!entry.isDirectory()) { extractFile (zipIn, filePath);
Comments
Post a Comment