See, JMeter is a performance testing tool which generates load over the application and thus provides the Response Time. Like any other Load testing tool, it too never launches browser physically, it will just place calls to the application server based on the HTTP requests which are there in your script. You will not see 1 or 10 browser instances running, only calls getting places to the application can be seen in the log file of server.
So, don’t use the WebDriver Sampler to create the load! You’ll need around 1 CPU core per virtual user to keep the JMeter resource consumption within an acceptable range.
The scenario i want to do is, I want all the 10 users to login at the
This you can do with JMeter, you can generate load but not multiple instances of FF, for this you need to create a test plan in JMeter and using that your all 10 users will be able to login to the application as concurrent users (based on your test plan configuration). For this task you can refer to the JMeter-Guide
It is recommended to keep the value of Thread Group = 1, when you are using "jp@gc - Web Driver Sampler" script.
JMeter allows the creation of multiple threads, and each thread is responsible for creating load on the server. However, for the Web Driver use case, the user should be prudent in the number of threads they will create as each thread will have a single browser instance associated with it. Each browser consumes a significant amount of resources, and a limit should be placed on how many browsers the user should create. However, the load testing cloud providers may help to scale WebDriver test up to thousands of real browsers, look at BlazeMeter for example.
From experience, the number of browser (threads) that the reader creates should be limited by the following formula:
C = N + 1
where C = Number of Cores of the host running the test and N = Number of Browser (threads).
e.g., if the current reader's host has 4 cores, the formula would yield:
4 = 3 + 1
meaning that the script should have a MAXIMUM of 3 threads.