Well-behaved load test is not hammering single URL, this form of test doesn't make a lot of sense (unless you're load testing .NET Core or IIS themselves), it represents real life user sitting behind real browser with all related stuff like:
- Headers
- Cookies
- Behavior with regards to embedded resources (images, scripts, styles, fonts, etc.) - real browsers download them using 6 parallel threads and respecting Cache-Control headers
- Cache itself, real browsers do download embedded resources, but do this only once, on subsequent requests the resources are being returned from cache and no actual request is being made
- AJAX requests - although none of load testing tools can actually execute client-side JavaScript if your application uses AJAX technology and it generates network requests - you need to simulate this as well as browsers execute JavaScript in asynchronous manner and the majority of load testing tools cannot kick off extra threads
And last but not least, if your application assumes different use cases by different user roles you should consider creating different independent groups of users which will map to your application use cases (i.e. anonymous users just crawling, logged in users filling some forms, etc) and the workload will more or less represent real-life distribution.
So the main idea of good load test is that this test should be realistic, otherwise it does not make a lot of sense as you will not be able to tell for sure how many simultaneous users you application supports providing reasonably low response time, when it breaks, does it recover when load decreases, etc.