Bird
Raised Fist0
Selenium Javatesting~20 mins

Test suites (testng.xml) in Selenium Java - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
TestNG Suite Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
TestNG Suite Execution Order
Given the following testng.xml configuration, what is the order of test method execution?
Selenium Java
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite1">
  <test name="Test1">
    <classes>
      <class name="tests.SampleTest" />
    </classes>
  </test>
  <test name="Test2" preserve-order="false">
    <classes>
      <class name="tests.AnotherTest" />
    </classes>
  </test>
</suite>
ATests run in parallel regardless of order
BAll methods in AnotherTest run first in any order, then all methods in SampleTest run in defined order
CMethods from both classes run interleaved based on alphabetical order
DAll methods in SampleTest run first in defined order, then all methods in AnotherTest run in any order
Attempts:
2 left
💡 Hint
Look at the preserve-order attribute and default behavior of TestNG suites.
❓ assertion
intermediate
2:00remaining
Assertion on TestNG Suite Parallel Execution
Which assertion correctly verifies that tests defined in testng.xml run in parallel mode?
Selenium Java
<suite name="ParallelSuite" parallel="tests" thread-count="3">
  <test name="TestA">
    <classes>
      <class name="tests.TestA" />
    </classes>
  </test>
  <test name="TestB">
    <classes>
      <class name="tests.TestB" />
    </classes>
  </test>
</suite>
AAssert.assertEquals(suite.getParallel(), "tests");
BAssert.assertFalse(suite.isParallel());
CAssert.assertEquals(suite.getThreadCount(), 1);
DAssert.assertTrue(suite.isParallel());
Attempts:
2 left
💡 Hint
Check the attribute that controls parallel execution in TestNG suite.
🔧 Debug
advanced
2:00remaining
Debugging Missing Test Execution in testng.xml
A tester notices that one test class is not running when executing the suite defined below. What is the most likely cause?
Selenium Java
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="SuiteDebug">
  <test name="TestGroup">
    <groups>
      <run>
        <include name="smoke" />
      </run>
    </groups>
    <classes>
      <class name="tests.LoginTest" />
      <class name="tests.PaymentTest" />
    </classes>
  </test>
</suite>
AThe <include> tag should be <exclude> to run smoke tests
BThe <groups> tag is misplaced inside <test> instead of <suite>
CPaymentTest methods are not annotated with @Test(groups = "smoke")
DThe suite name is missing the parallel attribute
Attempts:
2 left
💡 Hint
Check how TestNG runs tests filtered by groups.
❓ framework
advanced
2:00remaining
Configuring TestNG Suite for Multiple Browsers
Which testng.xml snippet correctly configures two tests to run in parallel on Chrome and Firefox browsers using parameters?
A
&lt;suite name="BrowserSuite"&gt;
  &lt;test name="BrowserTest"&gt;
    &lt;parameter name="browser" value="chrome,firefox" /&gt;
    &lt;classes&gt;
      &lt;class name="tests.BrowserTest" /&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;
B
&lt;suite name="BrowserSuite" parallel="tests" thread-count="2"&gt;
  &lt;test name="ChromeTest"&gt;
    &lt;parameter name="browser" value="chrome" /&gt;
    &lt;classes&gt;
      &lt;class name="tests.BrowserTest" /&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
  &lt;test name="FirefoxTest"&gt;
    &lt;parameter name="browser" value="firefox" /&gt;
    &lt;classes&gt;
      &lt;class name="tests.BrowserTest" /&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;
C
&lt;suite name="BrowserSuite" parallel="classes" thread-count="2"&gt;
  &lt;test name="BrowserTest"&gt;
    &lt;classes&gt;
      &lt;class name="tests.ChromeTest" /&gt;
      &lt;class name="tests.FirefoxTest" /&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;
D
&lt;suite name="BrowserSuite" parallel="methods" thread-count="2"&gt;
  &lt;test name="BrowserTest"&gt;
    &lt;parameter name="browser" value="chrome" /&gt;
    &lt;parameter name="browser" value="firefox" /&gt;
    &lt;classes&gt;
      &lt;class name="tests.BrowserTest" /&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;
Attempts:
2 left
💡 Hint
Parallel tests with different parameters require separate tags.
🧠 Conceptual
expert
2:00remaining
Impact of preserve-order and parallel Attributes in testng.xml
Consider a TestNG suite with parallel="tests" and preserve-order="false" on a <test> tag. Which statement best describes the execution behavior?
ATests run in parallel, and methods inside each test run in any order ignoring their declaration order
BTests run sequentially, but methods inside each test run in parallel ignoring order
CTests run in parallel, but methods inside each test run sequentially preserving order
DTests and methods both run sequentially preserving order
Attempts:
2 left
💡 Hint
Understand how preserve-order affects method execution inside tests when parallel is enabled.

Practice

(1/5)
1. What is the main purpose of the testng.xml file in Selenium testing?
easy
A. To write the Selenium WebDriver code
B. To store test data like usernames and passwords
C. To group and organize test classes and methods to run together
D. To generate HTML reports after test execution

Solution

  1. Step 1: Understand the role of testng.xml

    The testng.xml file is used to define which tests to run and how to organize them.
  2. Step 2: Identify the main purpose

    It groups test classes and methods so they can be run together as a suite.
  3. Final Answer:

    To group and organize test classes and methods to run together -> Option C
  4. Quick Check:

    Test suite grouping = To group and organize test classes and methods to run together [OK]
Hint: Remember: testng.xml organizes tests to run as a group [OK]
Common Mistakes:
  • Confusing testng.xml with test code files
  • Thinking testng.xml stores test data
  • Assuming testng.xml generates reports
2. Which of the following is the correct way to define a test suite in testng.xml?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Recall the correct XML structure for TestNG suites

    The root element is <suite>, inside it we define <test>, then <classes> and <class>.
  2. Step 2: Match the options with correct structure

    correctly follows this order and syntax.
  3. Final Answer:

    <suite name="MySuite"><test name="Test1"><classes><class name="TestClass"/></classes></test></suite> -> Option A
  4. Quick Check:

    Suite > Test > Classes > Class = [OK]
Hint: Remember XML order: suite > test > classes > class [OK]
Common Mistakes:
  • Swapping <suite> and <test> tags
  • Placing <class> directly under <suite>
  • Using wrong tag names or attributes
3. Given the following testng.xml snippet, what tests will run?
<suite name="Suite1" parallel="tests" thread-count="2">
  <test name="TestA">
    <classes>
      <class name="tests.LoginTest"/>
    </classes>
  </test>
  <test name="TestB">
    <classes>
      <class name="tests.PaymentTest"/>
    </classes>
  </test>
</suite>
medium
A. No tests run due to missing methods tag
B. Both LoginTest and PaymentTest run in parallel as separate tests
C. Tests run sequentially, LoginTest then PaymentTest
D. Only LoginTest runs because it is first

Solution

  1. Step 1: Analyze the parallel attribute in <suite>

    The attribute parallel="tests" means each <test> runs in parallel threads.
  2. Step 2: Identify the tests defined

    There are two tests: TestA with LoginTest class and TestB with PaymentTest class.
  3. Final Answer:

    Both LoginTest and PaymentTest run in parallel as separate tests -> Option B
  4. Quick Check:

    parallel="tests" runs tests simultaneously = Both LoginTest and PaymentTest run in parallel as separate tests [OK]
Hint: parallel="tests" runs each <test> in parallel [OK]
Common Mistakes:
  • Assuming tests run sequentially despite parallel attribute
  • Thinking <methods> tag is mandatory to run tests
  • Confusing parallel="tests" with parallel="classes"
4. You have this testng.xml file but tests are not running:
<suite name="Suite1">
  <test name="Test1">
    <class name="TestClass">
    </class>
  </test>
</suite>

What is the likely problem?
medium
A. The <suite> tag must include thread-count
B. The <test> tag is missing the parallel attribute
C. The class name must include the package name
D. The <class> tag should be self-closing or empty, not with separate open and close tags

Solution

  1. Step 1: Check the <class> tag syntax

    In TestNG XML, <class> should be self-closing like <class name="TestClass"/> or empty without content.
  2. Step 2: Identify the error in the given XML

    The given XML uses separate open and close tags for <class> which is invalid and causes tests not to run.
  3. Final Answer:

    The <class> tag should be self-closing or empty, not with separate open and close tags -> Option D
  4. Quick Check:

    Use self-closing <class> tag = The <class> tag should be self-closing or empty, not with separate open and close tags [OK]
Hint: Use self-closing tag in testng.xml [OK]
Common Mistakes:
  • Adding parallel attribute thinking it fixes syntax
  • Forgetting package name but that doesn't stop tests
  • Assuming thread-count is mandatory
5. You want to run two test classes LoginTest and PaymentTest in parallel but limit total threads to 1 in testng.xml. Which configuration achieves this?
hard
A.
B.
C.
D.

Solution

  1. Step 1: Understand parallel and thread-count attributes

    Setting parallel="classes" runs test classes in parallel, and thread-count="1" limits to one thread, so classes run one at a time.
  2. Step 2: Check options for matching configuration

    sets parallel to classes and thread-count to 1, matching the requirement.
  3. Final Answer:

    Option A configuration runs classes in parallel but limits threads to 1 -> Option A
  4. Quick Check:

    parallel="classes" + thread-count=1 = [OK]
Hint: parallel="classes" with thread-count=1 runs classes sequentially [OK]
Common Mistakes:
  • Using parallel="tests" with thread-count > 1 runs multiple threads
  • Omitting parallel attribute runs tests sequentially
  • Confusing parallel="methods" with classes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard