TestNG Tutorials 18: Default Priority Of @Test Methods In TestNG

Hello Folks,

Let’s run below TestNG class and observe output:


Can you see different order of execution of test methods than it has appeared in class? “Amrrod” method is last but got executed first. “Print” method is first but executed in second position.

Actually, TestNG does not run Test methods as it appears in TestNG class (Until we use some attributes like priority etc). It sorts method names based on ASCII value of method name char by char in a method name and arrange them in ascending order. You can find ASCII value of Unicode characters here. ASCII values of “a”, “p” and “s” are “61”, “70”, and “73”. So order will be “amrrod”, “print” and “show” methods.

Let’s see some more:

We can define a method name starting with underscore(“_”) or dollar (“$”) or both. Examples are:

_Method , $Method, _$Method, $_Method 

How TestNG will priorities these method? It follows below rule based on ASCII value.

  1. ‘$’ has highest priority.
  2. Capital alphabets will be second priority.
  3. Underscore will have third priority.
  4. Small letter alphabets will be fourth priority.

See an example below:



Liked the post? If yes please share and let others also learn.

More about TestNG in upcoming posts. Stay tuned.

If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.

3 thoughts on “TestNG Tutorials 18: Default Priority Of @Test Methods In TestNG

  1. This is best tutorial! I was asked thos question in an interview and since then I was looking for the answers. Finally found it.

Leave a Reply

Your email address will not be published. Required fields are marked *