Working with JMeter for about 2 years I've come to the optimal (for me) structure of the test plan. It's divided into several suites (thread groups) depending on user type (visitor or signed in user, etc.) and is quite large to simulate real user activity. Complex business operations can be grouped using Simple Controller for better readability of the test plan. Also do not forget about pauses.
Here is an example test plan structure:
Thread Group - Visitor Suite
Simple Controller - Homepage
Transaction Controller - Homepage
HTTP Request Sampler
...
Random Order Controller
Simple Controller - News page
Transaction Controller - News page
HTTP Request Sampler
...
...
Thread Group - User Suite
Simple Controller - Sign In page
Transaction Controller - Sign In page
HTTP Request Sampler
...
Random Order Controller
Simple Controller - View User Profile page
Transaction Controller - View User Profile page
HTTP Request Sampler
...
...
Here is an example test plan structure:
Thread Group - Visitor Suite
Simple Controller - Homepage
Transaction Controller - Homepage
HTTP Request Sampler
...
Random Order Controller
Simple Controller - News page
Transaction Controller - News page
HTTP Request Sampler
...
...
Thread Group - User Suite
Simple Controller - Sign In page
Transaction Controller - Sign In page
HTTP Request Sampler
...
Random Order Controller
Simple Controller - View User Profile page
Transaction Controller - View User Profile page
HTTP Request Sampler
...
...
Hi Victor...
ReplyDeleteQuite interesting blog you have!
I just started using Jmeter, and have encountered a little problem when recording a perticular test in which 3 comboboxes are dynamically filled depending on selection on the same page...
I was wondering if you can enlight me a little regarding this issue.
Thanks in advance for any help !
Tsuru, if the combobox data is static you can parse it using Regular Expression Extractor or XPath Extractor, save the parsed value to the variable and use it in further HTTP requests. And if it's dynamic (ajax, etc.) you need to add the appropriate HTTP request samples and then parse their content.
Delete