Best Testng code snippet using org.testng.xml.XmlTest.getMethodSelectors
Source:XmlTest.java  
...76  // For YAML77  public void setPackages(List<XmlPackage> p) {78    setXmlPackages(p);79  }80  public List<XmlMethodSelector> getMethodSelectors() {81    return m_methodSelectors;82  }83  public void setMethodSelectors(List<XmlMethodSelector> methodSelectors) {84    m_methodSelectors = Lists.newArrayList(methodSelectors);85  }86  /**87   * Returns the suite this test is part of.88   * @return the suite this test is part of.89   */90  public XmlSuite getSuite() {91    return m_suite;92  }93  /**94   * @return the includedGroups.95   */96  public List<String> getIncludedGroups() {97    List<String> result = Lists.newArrayList();98    if (m_xmlGroups != null && m_xmlGroups.getRun() != null) {99      result.addAll(m_xmlGroups.getRun().getIncludes());100    }101    result.addAll(m_suite.getIncludedGroups());102    return Collections.unmodifiableList(result);103  }104  /**105   * Sets the XML Classes.106   * @param classes The classes to set.107   * @deprecated use setXmlClasses108   */109  @Deprecated110  public void setClassNames(List<XmlClass> classes) {111    m_xmlClasses = classes;112  }113  /**114   * @return Returns the classes.115   */116  public List<XmlClass> getXmlClasses() {117    return m_xmlClasses;118  }119  // For YAML120  public List<XmlClass> getClasses() {121    return getXmlClasses();122  }123  // For YAML124  public void setClasses(List<XmlClass> c) {125    setXmlClasses(c);126  }127  /**128   * Sets the XML Classes.129   * @param classes The classes to set.130   */131  public void setXmlClasses(List<XmlClass> classes) {132    m_xmlClasses = classes;133  }134  /**135   * @return Returns the name.136   */137  public String getName() {138    return m_name;139  }140  /**141   * @param name The name to set.142   */143  public void setName(String name) {144    m_name = name;145  }146  /**147   * @param v148   */149  public void setVerbose(int v) {150    m_verbose = v;151  }152  public int getThreadCount() {153    return m_threadCount > 0 ? m_threadCount : getSuite().getThreadCount();154  }155  public void setThreadCount(int threadCount) {156    m_threadCount = threadCount;157  }158  public void setIncludedGroups(List<String> g) {159    if (m_xmlGroups == null) {160      m_xmlGroups = new XmlGroups();161    }162    if (m_xmlGroups.getRun() == null) {163        m_xmlGroups.setRun(new XmlRun());164    }165    List<String> includes = m_xmlGroups.getRun().getIncludes();166    includes.clear();167    includes.addAll(g);168  }169  public void setExcludedGroups(List<String> g) {170    if (m_xmlGroups == null) {171      m_xmlGroups = new XmlGroups();172    }173    if (m_xmlGroups.getRun() == null) {174      m_xmlGroups.setRun(new XmlRun());175    }176    List<String> excludes = m_xmlGroups.getRun().getExcludes();177    excludes.clear();178    excludes.addAll(g);179  }180  public List<String> getExcludedGroups() {181    List<String> result = new ArrayList<>();182    if (m_xmlGroups != null && m_xmlGroups.getRun() != null) {183      result.addAll(m_xmlGroups.getRun().getExcludes());184    }185    result.addAll(m_suite.getExcludedGroups());186    return Collections.unmodifiableList(result);187  }188  public void addIncludedGroup(String g) {189    if (m_xmlGroups == null) {190      m_xmlGroups = new XmlGroups();191      m_xmlGroups.setRun(new XmlRun());192    }193    m_xmlGroups.getRun().getIncludes().add(g);194  }195  public void addExcludedGroup(String g) {196    if (m_xmlGroups == null) {197      m_xmlGroups = new XmlGroups();198    }199    if (m_xmlGroups.getRun() == null) {200      m_xmlGroups.setRun(new XmlRun());201    }202    m_xmlGroups.getRun().getExcludes().add(g);203  }204  /**205   * @return Returns the verbose.206   */207  public int getVerbose() {208    Integer result = m_verbose;209    if (null == result || XmlSuite.DEFAULT_VERBOSE.equals(m_verbose)) {210      result = m_suite.getVerbose();211    }212    if (null != result) {213      return result;214    } else {215      return 1;216    }217  }218  public boolean getGroupByInstances() {219    Boolean result = m_groupByInstances;220    if (result == null || XmlSuite.DEFAULT_GROUP_BY_INSTANCES.equals(m_groupByInstances)) {221      result = m_suite.getGroupByInstances();222    }223    if (result != null) {224      return result;225    } else {226      return XmlSuite.DEFAULT_GROUP_BY_INSTANCES;227    }228  }229  public void setGroupByInstances(boolean f) {230    m_groupByInstances = f;231  }232  /**233   * @return Returns the isJUnit.234   */235  public boolean isJUnit() {236    Boolean result = m_isJUnit;237    if (null == result || XmlSuite.DEFAULT_JUNIT.equals(result)) {238      result = m_suite.isJUnit();239    }240    return result;241  }242  /**243   * @param isJUnit The isJUnit to set.244   */245  public void setJUnit(boolean isJUnit) {246    m_isJUnit = isJUnit;247  }248  // For YAML249  public void setJunit(boolean isJUnit) {250    setJUnit(isJUnit);251  }252  public void setSkipFailedInvocationCounts(boolean skip) {253    m_skipFailedInvocationCounts = skip;254  }255  /**256   * @return Returns the isJUnit.257   */258  public boolean skipFailedInvocationCounts() {259    Boolean result = m_skipFailedInvocationCounts;260    if (null == result) {261      result = m_suite.skipFailedInvocationCounts();262    }263    return result;264  }265  public void addMetaGroup(String name, List<String> metaGroup) {266    if (m_xmlGroups == null) {267      m_xmlGroups = new XmlGroups();268    }269    XmlDefine define = new XmlDefine();270    define.setName(name);271    define.getIncludes().addAll(metaGroup);272    m_xmlGroups.getDefines().add(define);273  }274  public void addMetaGroup(String name, String... metaGroup) {275    addMetaGroup(name, Arrays.asList(metaGroup));276  }277  // For YAML278  public void setMetaGroups(Map<String, List<String>> metaGroups) {279    for (Map.Entry<String, List<String>> entry : metaGroups.entrySet()) {280      addMetaGroup(entry.getKey(), entry.getValue());281    }282  }283  /**284   * @return Returns the metaGroups.285   */286  public Map<String, List<String>> getMetaGroups() {287    if (m_xmlGroups == null) {288      return Collections.emptyMap();289    }290    Map<String, List<String>> result = Maps.newHashMap();291    List<XmlDefine> defines = m_xmlGroups.getDefines();292    for (XmlDefine xd : defines) {293      result.put(xd.getName(), xd.getIncludes());294    }295    return result;296  }297  /**298   * @param parameters299   */300  public void setParameters(Map<String, String> parameters) {301    m_parameters = parameters;302  }303  public void addParameter(String key, String value) {304    m_parameters.put(key, value);305  }306  public String getParameter(String name) {307    String result = m_parameters.get(name);308    if (null == result) {309      result = m_suite.getParameter(name);310    }311    return result;312  }313  /**314   * @return the parameters defined in this test tag and the tags above it.315   */316  public Map<String, String> getAllParameters() {317    Map<String, String> result = Maps.newHashMap();318    result.putAll(getSuite().getParameters());319    result.putAll(m_parameters);320    return result;321  }322  /**323   * @return the parameters defined in this tag, and only this test tag. To retrieve324   * the inherited parameters as well, call {@code getAllParameters()}.325   */326  public Map<String, String> getLocalParameters() {327    return m_parameters;328  }329  /**330   * @deprecated Use {@code getLocalParameters()} or {@code getAllParameters()}331   */332  @Deprecated333  public Map<String, String> getParameters() {334    return getAllParameters();335  }336  /**337   * @deprecated Use {@code getLocalParameters()} instead338   *339   * @return the parameters defined on this <test> tag only340   */341  @Deprecated342  public Map<String, String> getTestParameters() {343    return getLocalParameters();344  }345  public void setParallel(XmlSuite.ParallelMode parallel) {346    m_parallel = skipDeprecatedValues(parallel);347  }348  public XmlSuite.ParallelMode getParallel() {349    XmlSuite.ParallelMode result;350    if (null != m_parallel || XmlSuite.DEFAULT_PARALLEL.equals(m_parallel)) {351      result = m_parallel;352    }353    else {354      result = m_suite.getParallel();355    }356    return result;357  }358  public String getTimeOut() {359    String result = null;360    if (null != m_timeOut) {361      result = m_timeOut;362    }363    else {364      result = m_suite.getTimeOut();365    }366    return result;367  }368  public long getTimeOut(long def) {369    long result = def;370    if (getTimeOut() != null) {371        result = Long.parseLong(getTimeOut());372    }373    return result;374  }375  public void setTimeOut(long timeOut) {376      m_timeOut = Long.toString(timeOut);377  }378  private void setTimeOut(String timeOut) {379      m_timeOut = timeOut;380  }381  public void setExpression(String expression) {382    setBeanShellExpression(expression);383  }384  public void setBeanShellExpression(String expression) {385    List<XmlMethodSelector> selectors = getMethodSelectors();386    if (selectors.size() > 0) {387      selectors.get(0).setExpression(expression);388    } else if (expression != null) {389      XmlMethodSelector xms = new XmlMethodSelector();390      xms.setExpression(expression);391      xms.setLanguage("BeanShell");392      getMethodSelectors().add(xms);393    }394  }395  public String getExpression() {396    List<XmlMethodSelector> selectors = getMethodSelectors();397    if (selectors.size() > 0) {398      return selectors.get(0).getExpression();399    } else {400      return null;401    }402  }403  public String toXml(String indent) {404    XMLStringBuffer xsb = new XMLStringBuffer(indent);405    Properties p = new Properties();406    p.setProperty("name", getName());407    if (m_isJUnit != null) {408      XmlUtils.setProperty(p, "junit", m_isJUnit.toString(), XmlSuite.DEFAULT_JUNIT.toString());409    }410    if (m_parallel != null) {411      XmlUtils.setProperty(p, "parallel", m_parallel.toString(), XmlSuite.DEFAULT_PARALLEL.toString());412    }413    if (m_verbose != null) {414      XmlUtils.setProperty(p, "verbose", m_verbose.toString(), XmlSuite.DEFAULT_VERBOSE.toString());415    }416    if (null != m_timeOut) {417      p.setProperty("time-out", m_timeOut.toString());418    }419    if (m_preserveOrder != null && ! XmlSuite.DEFAULT_PRESERVE_ORDER.equals(m_preserveOrder)) {420      p.setProperty("preserve-order", m_preserveOrder.toString());421    }422    if (m_threadCount != -1) {423      p.setProperty("thread-count", Integer.toString(m_threadCount));424    }425    if (m_groupByInstances != null) {426      XmlUtils.setProperty(p, "group-by-instances", String.valueOf(getGroupByInstances()),427          XmlSuite.DEFAULT_GROUP_BY_INSTANCES.toString());428    }429    xsb.push("test", p);430    if (null != getMethodSelectors() && !getMethodSelectors().isEmpty()) {431      xsb.push("method-selectors");432      for (XmlMethodSelector selector: getMethodSelectors()) {433        xsb.getStringBuffer().append(selector.toXml(indent + "    "));434      }435      xsb.pop("method-selectors");436    }437    XmlUtils.dumpParameters(xsb, m_parameters);438    // groups439    if ((m_xmlGroups != null &&440            (!m_xmlGroups.getDefines().isEmpty() ||441            (m_xmlGroups.getRun() != null && (!m_xmlGroups.getRun().getIncludes().isEmpty() || !m_xmlGroups.getRun().getExcludes().isEmpty()))442            )443        ) || !m_xmlDependencyGroups.isEmpty()) {444      xsb.push("groups");445      // define446      if (m_xmlGroups != null) {...Source:TestNGExecutor.java  
...77    private static void addSelector( XmlTest xmlTest, XmlMethodSelector selector )78    {79        if ( selector != null )80        {81            xmlTest.getMethodSelectors().add( selector );82        }83    }84    private static XmlMethodSelector getMethodNameFilteringSelector( String methodNamePattern )85        throws TestSetFailedException86    {87        if ( StringUtils.isBlank( methodNamePattern ) )88        {89            return null;90        }91        // the class is available in the testClassPath92        String clazzName = "org.apache.maven.surefire.testng.utils.MethodSelector";93        try94        {95            Class clazz = Class.forName( clazzName );...Source:DefaultXmlWeaver.java  
...101    if (xmlSuite.getXmlMethodSelectors() != null) {102      xsb.getStringBuffer().append(xmlSuite.getXmlMethodSelectors().toXml("  "));103    } else {104      // deprecated105      if (hasElements(xmlSuite.getMethodSelectors())) {106        xsb.push("method-selectors");107        for (XmlMethodSelector selector : xmlSuite.getMethodSelectors()) {108          xsb.getStringBuffer().append(selector.toXml("  "));109        }110        xsb.pop("method-selectors");111      }112    }113    List<String> suiteFiles = xmlSuite.getSuiteFiles();114    if (!suiteFiles.isEmpty()) {115      xsb.push("suite-files");116      for (String sf : suiteFiles) {117        Properties prop = new Properties();118        prop.setProperty("path", sf);119        xsb.addEmptyElement("suite-file", prop);120      }121      xsb.pop("suite-files");122    }123    List<String> included = xmlSuite.getIncludedGroups();124    List<String> excluded = xmlSuite.getExcludedGroups();125    if (hasElements(included) || hasElements(excluded)) {126      xsb.push("groups");127      xsb.push("run");128      for (String g : included) {129        xsb.addEmptyElement("include", "name", g);130      }131      for (String g : excluded) {132        xsb.addEmptyElement("exclude", "name", g);133      }134      xsb.pop("run");135      xsb.pop("groups");136    }137    if (xmlSuite.getGroups() != null) {138      xsb.getStringBuffer().append(xmlSuite.getGroups().toXml("  "));139    }140    for (XmlTest test : xmlSuite.getTests()) {141      xsb.getStringBuffer().append(test.toXml("  "));142    }143    xsb.pop("suite");144    return xsb.toXML();145  }146  @Override147  public String asXml(XmlTest xmlTest, String indent) {148    XMLStringBuffer xsb = new XMLStringBuffer(indent);149    xsb.setDefaultComment(defaultComment);150    Properties p = new Properties();151    p.setProperty("name", xmlTest.getName());152    XmlUtils.setProperty(153        p, "junit", Boolean.toString(xmlTest.isJUnit()), XmlSuite.DEFAULT_JUNIT.toString());154    XmlUtils.setProperty(155        p, "parallel", xmlTest.getParallel().toString(), XmlSuite.DEFAULT_PARALLEL.toString());156    XmlUtils.setProperty(157        p, "verbose", Integer.toString(xmlTest.getVerbose()), XmlSuite.DEFAULT_VERBOSE.toString());158    if (null != xmlTest.getTimeOut()) {159      p.setProperty("time-out", xmlTest.getTimeOut());160    }161    if (xmlTest.getPreserveOrder() != null162        && !XmlSuite.DEFAULT_PRESERVE_ORDER.equals(xmlTest.getPreserveOrder())) {163      p.setProperty("preserve-order", xmlTest.getPreserveOrder().toString());164    }165    if (xmlTest.getThreadCount() != -1) {166      p.setProperty("thread-count", Integer.toString(xmlTest.getThreadCount()));167    }168    XmlUtils.setProperty(169        p,170        "group-by-instances",171        String.valueOf(xmlTest.getGroupByInstances()),172        XmlSuite.DEFAULT_GROUP_BY_INSTANCES.toString());173    xsb.push("test", p);174    if (null != xmlTest.getMethodSelectors() && !xmlTest.getMethodSelectors().isEmpty()) {175      xsb.push("method-selectors");176      for (XmlMethodSelector selector : xmlTest.getMethodSelectors()) {177        xsb.getStringBuffer().append(selector.toXml(indent + "    "));178      }179      xsb.pop("method-selectors");180    }181    XmlUtils.dumpParameters(xsb, xmlTest.getLocalParameters());182    // groups183    if ((xmlTest.getXmlGroups() != null184            && (!xmlTest.getXmlGroups().getDefines().isEmpty()185                || (xmlTest.getXmlGroups().getRun() != null186                    && (!xmlTest.getXmlGroups().getRun().getIncludes().isEmpty()187                        || !xmlTest.getXmlGroups().getRun().getExcludes().isEmpty()))))188        || !xmlTest.getXmlDependencyGroups().isEmpty()) {189      xsb.push("groups");190      // define...Source:MethodSelector.java  
...75		XmlTest eachTest = new XmlTest();76		tests.add(eachTest);77		eachTest.setName("My test");78		 eachTest.setParameters(allParameters.get(0));79		//eachTest.setMethodSelectors(getMethodSelectors(methodS));80		eachTest.setXmlClasses(getXmlClasses(eachTest, getMethodsfromClass));81		eachTest.setSuite(suite);82		XmlTest eachTest1 = new XmlTest();83		tests.add(eachTest1);84		eachTest1.setName("ChromeTest");85     	eachTest1.setParameters(allParameters.get(1));86		//eachTest.setMethodSelectors(getMethodSelectors(methodS));87		eachTest1.setXmlClasses(getXmlClasses(eachTest, getMethodsfromClass));88		eachTest1.setSuite(suite); 89		return tests;90	}9192	public List<XmlClass> getXmlClasses(XmlTest test,Map<String, String> getMethodsfromClass, List<String> ls) {93		List<XmlClass> classes = new ArrayList<XmlClass>();94		 ArrayList<XmlInclude> methodsToRun = new  ArrayList<XmlInclude>(); 95		 if(getMethodsfromClass.isEmpty()==true)96			{97				try98				{99				File folder = new File(100						"D:\\Vbrick_TeamCity__Aug26\\vBricksTest-1\\src\\test\\java\\com\\vbrick\\avenger\\test");101				File[] listOfFiles = folder.listFiles();102				for (int i = 0; i < listOfFiles.length; i++) {103					if (listOfFiles[i].isFile()) {104						// System.out.println("File " +105						// listOfFiles[i].getName().replace(".java",""));106						String name = listOfFiles[i].getName().replace(".java", "");107						String path = "com.vbrick.avenger.test." + name;108						 System.out.println("path is" +path);109						Class c =Class.forName(path);110						 System.out.println("value of c is" +c.getSimpleName());111						 XmlClass eachClass = new XmlClass(path);112						 classes.add(eachClass);113					     eachClass.setExcludedMethods(ls);114						 eachClass.setXmlTest(test);115					116			        }117				}118				}119				catch(Exception e)120				{121					122				}123			}124		 125		 else126		 {127		try128		{129		int counter=0;130		for (Map.Entry<String, String> entry : getMethodsfromClass.entrySet()) {131			System.out.println("value of entry key is" +entry.getKey() +"value is" +entry.getValue() );132			String[] splits = entry.getValue().split(":");133			System.out.println("splits.size: " + splits.length);134			System.out.println("value 1 is" +splits[0]);135			System.out.println("value 1 is" +splits[1]);136			String path = "com.vbrick.avenger.test." + entry.getValue();137			XmlClass eachClass = new XmlClass(path);138			 classes.add(eachClass);139			 List<String> ls = new ArrayList<String>();140				ls.add("smokeTest1");141				 eachClass.setExcludedMethods(ls);	142			 methodsToRun.add(new XmlInclude(entry.getKey()));143			 eachClass.setIncludedMethods(methodsToRun);144			// eachClass.setClass(AddUserTest.class);145			 eachClass.setXmlTest(test);146			// System.out.println("value of entry key is" +entry.getKey());147			 counter++;148			//System.out.println("Value of counter After increment"+counter);149		}150		151		}152		catch(Exception e)153		{154			155		}156		 }157		return classes;158	159		160		// myClasses.add(new XmlClass("com.vbrick.avenger.test.AddUserTest"));161		XmlClass eachClass = new XmlClass("com.vbrick.avenger.test.AddUserTest");162		 classes.add(eachClass1);163		 classes.add(eachClass);164		List<String> ls = new ArrayList<String>();165		ls.add("verify_Creation_of_User_Sucessfull1");166			167		for (int i = 0; i < getMethodsfromClass.size(); i++) {168				        methodsToRun.add(new XmlInclude(getMethodsfromClass.get(i)));169				        System.out.println("values in method to run" +methodsToRun);170		}171		eachClass.setIncludedMethods(methodsToRun);172	   //eachClass.setExcludedMethods(ls);173		eachClass1.setIncludedMethods(methodsToRun);174		//eachClass2.setIncludedMethods(methodsToRun);175		eachClass.setClass(AddUserTest.class);176		 eachClass1.setClass(SampleTest1.class);177		 //eachClass2.setClass(MyTestClass.class);178		 179		eachClass.setXmlTest(test);180		 eachClass1.setXmlTest(test);181		 //eachClass2.setXmlTest(test);182		 183		184	}185186	public List<XmlMethodSelector> getMethodSelectors(List<String> list) {187		List<XmlMethodSelector> methodSelectors = new ArrayList<XmlMethodSelector>();188		XmlMethodSelector selector = new XmlMethodSelector();189190		XmlScript script = new XmlScript();191		String s = "";192		selector.setScript(script);193		script.setLanguage("beanshell");194		for (int i = 0; i < list.size(); i++) {195			logger.info("list size is " + list.size());196			logger.info("value of list are" + list.get(i));197			int value = list.size();198199			if (i == value - 1 || value == 0) {200				s = s.concat("!testngMethod.getMethodName().equals(\""
...Source:SuiteDispatcher.java  
...118						tmpTest.setXmlClasses(test.getXmlClasses());119						tmpTest.setExcludedGroups(test.getExcludedGroups());120						tmpTest.setIncludedGroups(test.getIncludedGroups());121						tmpTest.setJUnit(test.isJUnit());122						tmpTest.setMethodSelectors(test.getMethodSelectors());123						tmpTest.setName(test.getName());124						tmpTest.setParallel(test.getParallel());125						tmpTest.setParameters(test.getLocalParameters());126						tmpTest.setVerbose(test.getVerbose());127						tmpTest.setXmlClasses(test.getXmlClasses());128						tmpTest.setXmlPackages(test.getXmlPackages());129130						m_masterAdpter.runSuitesRemotely(tmpSuite, listener);131					}132				}133				else134				{135					m_masterAdpter.runSuitesRemotely(suite, listener);136				}
...getMethodSelectors
Using AI Code Generation
1import org.testng.xml.XmlTest;2import java.lang.reflect.Method;3import java.util.ArrayList;4import java.util.List;5public class GetMethodSelectors {6public static void main(String[] args) {7XmlTest xmlTest = new XmlTest();8List<String> methodSelectors = new ArrayList<>();9methodSelectors.add("testMethod1");10methodSelectors.add("testMethod2");11xmlTest.setMethodSelectors(methodSelectors);12List<Method> methods = xmlTest.getMethodSelectors();13for (Method method : methods) {14System.out.println(method.getName());15}16}17}getMethodSelectors
Using AI Code Generation
1package testng;2import java.lang.reflect.Method;3import java.util.Arrays;4import java.util.List;5import org.testng.annotations.Test;6import org.testng.xml.XmlTest;7public class TestGetMethods {8    public void test1() {9        System.out.println("test1");10    }11    public void test2() {12        System.out.println("test2");13    }14    public void test3() {15        System.out.println("test3");16    }17    public void test4() {18        System.out.println("test4");19    }20    public void test5() {21        System.out.println("test5");22    }23    public void test6() {24        System.out.println("test6");25    }26    public void test7() {27        System.out.println("test7");28    }29    public void test8() {30        System.out.println("test8");31    }32    public void test9() {33        System.out.println("test9");34    }35    public void test10() {36        System.out.println("test10");37    }38    public static void main(String[] args) {39        XmlTest xmlTest = new XmlTest();40        xmlTest.setXmlClasses(Arrays.asList(new Class[] { TestGetMethods.class }));41        xmlTest.setIncludedMethods(Arrays.asList(new String[] { "test[1-3]" }));42        Method[] methods = xmlTest.getTestMethods();43        List<String> methodSelectors = xmlTest.getMethodSelectors();44        System.out.println("Methods to be run: " + methodSelectors);45        for (Method method : methods) {46            System.out.println(method.getName());47        }48    }49}TestNG is a Java-based open-source framework for test automation that includes various test types, such as unit testing, functional testing, E2E testing, etc. TestNG is in many ways similar to JUnit and NUnit. But in contrast to its competitors, its extensive features make it a lot more reliable framework. One of the major reasons for its popularity is its ability to structure tests and improve the scripts' readability and maintainability. Another reason can be the important characteristics like the convenience of using multiple annotations, reliance, and priority that make this framework popular among developers and testers for test design. You can refer to the TestNG tutorial to learn why you should choose the TestNG framework.
You can push your abilities to do automated testing using TestNG and advance your career by earning a TestNG certification. Check out our TestNG certification.
Watch this complete tutorial to learn how you can leverage the capabilities of the TestNG framework for Selenium automation testing.
Get 100 minutes of automation test minutes FREE!!
