For your issue about the CPU and Memory usage graph, I will recommend you to use the JMeter plugin and use the Perfmon Metrics Collector listener of this plugin in your scripts. Also, you will need to place and start a file StartAgent.bat (StartAgent.sh for Linux systems) on the server and open the port 4444 on your server. Once this all is done, JMeter will capture the CPU, Memory, Disk I/O etc. (what all metrics you want) of the server and will plot the graph.
This plugin is recommended for capturing server resource utilization, when using JMeter.
Now, regarding the up-down of the graph, if your application is heavy enough to shoot up the CPU and Memory of the server even for 10 users, then these graphs will show you the required up-downs, still to be double sure check the graphs once by increasing the load to 20, 30 etc.
For verifying all requests are hitting the server or not there are multiple ways:-
- If you are using IIS, then check the IIS logs for the requests
- If your application includes any kind of Add, Update or Delete functionalities, then hit back to the Database to see if respective table/column values are getting updated or not e.g. for Add operation one new row for each user/thread should be added to the table, so if you have 30 users in script and each user is creating some data then at the end of the script your record count should get increased by 30.
- If your application includes any kind of Login, then check the Login history or DB table which maintain the login history of the user.
- Use Assertions in your script to validate the response provided by script is as expected or not, if requests are not hitting the correct URL or server then your assertion will fail.
- Verify your results in the Tree listener, this will show you the complete HTML of the request response being rendered, from there you will get an idea while your script is actually hitting the correct server or not.