Navigation trail: JMeterProjectPages - JMeterDevelopment - JMeterDevelopment/DeveloperDocumentation


JMeter defines the following types of test elements:

Controllers

Controllers contain other test elements – most significantly Samplers. Controllers implement the Controller interface, whose most relevant method is next(), which returns the next Sampler to be used.

Q: why is this done in this way, instead of handling control over to a controller run() method?

Threads

Q: Is a Thread Group a controller?

Q: What's the relationship between a Thread Group and the JMeterThread objects?

Q: Does this mean that a Thread Group is just a Loop Controller that can be placed at the top of the tree?

Samplers

Samplers take measurements (usually by generating some load and measuring how long it takes). Their most relevant method is the sample() method, which returns a SampleResult. Samplers are always cloned before being used – which means they can change as they go, but also causes performance concerns.

Q: What/who takes care of associating configuration elements and modifiers to the Samplers?

Q: And who takes care of calling the addTestElement() method for each of the applicable configuration elements and modifiers? Is this done at compile-time or at run-time?

Timers

...(to be filled)...

Q: How does the Thread learn about the Timers applicable to a certain Sampler?

Q: Are these Sampler Packages created at compile-time and then cycled through in the right order? Or they are created at run-time as they are needed?

Listeners / Visualizers

Config Elements

Assertions

Modifiers and Response-Based Modifiers

......