Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Corrected links that should have been relative instead of absolute.

BOF Notes

http://jakarta.apache.org/jmeter/

Rough Notes - Please edit, update and correct any errors

JMeter can be used to 'test' a server after restart which also serves the purpose of causing the tomcat objects to be compiled and cached so the first student login is quicker.

One P4 machine with 512MB RAM should be sufficient to create a sustained load 5 req/sec across multiple machines.

When going through a layer 4 load balancer, you can't go through the load balancer but have to go to the servers directly.

You have to figure out how to load test your system. What are the users doing? That type of analysis has to be done ahead of time.

The only way to run JMeter for a long time, use the 'Simple Data' writer which outputs a CSV file and is very verbose. Every line in the file represents one request to the server.

Another good output writer is the 'Assertion Results' writer which is only successful if a certain pattern exists.

JMeter can be used to test JDBC connections and other types of things, but the docs will need to be referenced.

JMeter using RegEx a lot for picking things out of the various JMeter tools.

You can pass to JMeter a set of users with passwords that will be used for the testing.

The test harness and snapshot of JMeter that is on the Wiki can be used for pretty much any uP2 install with some changes to the three configuration files.

Need to changed 'activeTab' in the URL regex to another variable that is used for ALM. The current regex that is being used works for SLM and DLM. For ALM repace 'activeTab' with 'focusedTabID'

Thread Group lets you determine the number of threads. Threads can be users or threads, but it is better to think of the threads in Thread Group more as threads. Not really a user. Are there recommendations for the number of threads? Or is this institution specific?

JMeter can be used for monitoring of a server and this can be done via the 'Listeners'.

The 'Sampler' shows where JMeter can be more than just a Web Load Tester.

'Response Assertion' is all UW is doing right now. They are looking for certain text in the response to determine success or failure.

The reason for running the 'Load Server Config' only once for the lifetime of the thread is because when doing a distributed load test across multiple machines there is the potential to take out one machine if one machine slows down and the threads back up on that machine thus killing it.

When using the 'Cookie Manager' check the 'clear cookie' so it simulates a new browser for each iteration.

'Simple Controller' is good for grouping things visually or scoping things. They don't really do anything.

Variables can be used in the Sampler names so when JMeter outputs data, it outputs the server name (for example) so it is easier to track where the output is relevant to.

You have to recreate the logic of your login page when posting credentials to the login page.

In a 'timer' the target throughput sets a limit on the number of threads. The timer is consulted at each run of the sampler.

'Module Controller' is the equiv to a method call. This can be useful to reuse logic.

There is 'Recording Controller' can be used to record actions (with the HTTP Proxy) and create a test script based on it. UW has not used or tested it, but it may be useful.

The reports can be within a group so the report is scoped to just that group. This can be useful to remove stats from things like the login and logout server.

The 'View Result Tree' is a good report that can be useful when building the tests but should be disabled when doing long term testing. This tree shows results from each sampler along with raw HTML and HTTP headers.

Cycling through all the tabs in ALM might be harder since the tab ids might be random. This needs to be looked into further.

A thread in JMeter does not equal 1 to 1 to a real user because the thread can do things faster than a real person. Also, in the real world, when a user logs in and does not 'logout' they are still a 'concurrent' user but are not putting load on the server. You almost have to scale your JMeter results or use the constant throughput timer to help control the threads and better simulate actual users.

Chapter 18 - the component reference of the JMeter docs is the most important. It can be a bit old, but a good place to start.

jMeter Resources

jMeterTestHarness.zip contains a set of jMeter test scripts, configuration files for those scripts and an ant build file to wire the configurations up and run jMeter. The scripts work against uPortal and were created using a jMeter SVN snapshot. The reason for the snapshot is a feature used for throughput control that was added after the 2.1 release. The snapshot was taken from the rel-2-1 branch on 2006.06.02. It is available for download here: jMeter_rel-2-1-20060602.zip