Hello Folks,

Before continuing this post, you must go through below posts:

Integration of TestNG and Beanshell

How To Pass a Group Name to be Run at Runtime in TestNG XML Using Beanshell

Problem statement:

You have created so many test methods with different groups. You do not need to run all group every time. You need to include or exclude groups as per requirements. You need to add include or exclude tags in testng xml which is not easier always. It will be even more difficult for a beginner or a business analyst or people with less technical knowledge to update testng xml to run. In this post, we will see how can we pass multiple group names.

Problem Solution:

WIll it not be good if you can pass group names at run time and no need to change anything in testng xml? Yes, its possible using beanshell.

TestNG class:


Testng XML:

  • “groupToRun” is a VM arguments which we can be passed through run configuration. Beanshell script will read it at run time and will execute group which we pass.
  • If no VM argument is passed, it will run all groups. So this testng xml can be used to run all groups as well as selected groups.
  • If a method belongs to any of passed group names, that method will be executed otherwise ignored.


Passing VM arguments in Run configurations:

Navigate to Run -> Run Configurations:

Select testng xml for which arguments need to be passed:


Click or Arguments tab and type in VM arguments as -DgroupToRun=<Group Name1>,<Group Name2>,<Group Name3>. Pass multiple group names separated by comma.



Method tagged to either groups run.

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.

Author: Amod Mahajan

My name is Amod Mahajan and I am an IT employee with 6+ years of experience in Software testing and staying in Bengaluru. My area of interest is Automation testing. I started from basics and went through so many selenium tutorials. Thanks to Mukesh Otwani as his tutorials are easy and cover basics to advance. I have habit of exploring concepts by deep diving. I used to make notes. I thought of sharing my knowledge through posts and now I am here. #KeepLearning #ShareLearning

3 thoughts on “Advanced TestNG Tutorials 35: How To Pass Multiple Group Names to be Run at Runtime in TestNG XML Using Beanshell

  1. Not able to add xml here.

    Let me explain it.

    Within the class tag, I am excluding few of the methods. Then, I am expecting to not run those cases when running the xml by using group name. But, all the tests are executing.

    How to handle this?

  2. Though I replace classes tag with below xml content in the above example, “MethodsBelongToG1” is still being executed. How to overcome this issue?

Leave a Reply