wissel.net

Usability - Productivity - Business - The web - Singapore & Twins

Stress-Testing Lotus Domino applications with JMeter


There is a current discussion going on if and how to use webQueryOpen Agents. Jake has some excellent examples what you can achieve, while Michel didn't find performance differences between an embedded view and a WQO agent. I was actually not surprised, since a single user would show any difference. My suspicion is that the results will change once you put a server under load. So I was looking around for a tool that anybody could use to run a little test (so Rational Performance Tester was out of the picture).
The search was short. Apache offers a tool called JMeter. I don't know how it stacks up against other frameworks and/or tools, but it does everything we need for the little test. What is also quite nice about JMeter: there is a Wiki and plenty of online information how to use it. Once you download the binaries and expand them into a directory, you are good to go.
JMeter is started as Java application using the jmeter.bat file. You also have the option to run a command-line or even start remote instances. To work with JMeter successfully you need to understand a few concepts. JMeter is hierarchically organized. JMeter executes TestPlans, TestPlans contain ThreadGroups and ThreadGroups contain Tests. A Test consists as a minimum of one or more sampler. You also want to add a listener to show your result graphically or as table. You have a lot of options to configure and script, so it will take quite a while until you can take advantage of all the functionality. However the good news: it takes only a few minutes to configure a simple load test like "Hammer this URL with 1000 users".

These are the steps:
  1. Start JMeter
  2. Right click on Test Plan: add Thread Group. Specify the number of users (a.k.a threads) and the ramp-up time. This is the time how long JMeter will take to open all the treads. Also you can specify the number of loops to run.
  3. Right Click on the Tread Group and add a "HTTP Request HTTP Client" Sampler. Define the web server, port and relative URL (typically "/myNSF.nsf?OpenForm, ...?OpenDocument or ...?EditDocument").
  4. Right Click on Test Plan and add some listeners like the "Summary Result" or "Graph Result"
  5. Save the file (Ctrl+S)
  6. Run the plan (Ctrl+R)

That is all. You can look at the results in a tabular or graphic form, depending on the listeners you defined. Next step: run it against your favorite WQO.Some screen shots:
The ready Test plan

Specify the load to be generated:
Specify the load to be generated

URL settings:
URL Settings

The test results
Test Results

Posted by on 17 August 2007 | Comments (7) | categories: Show-N-Tell Thursday

Comments

  1. posted by William Beh on Friday 17 August 2007 AD:
    JMeter is definitely one cool software. I recently use it to stress test Websphere Portal Server. We get some quite interesting results. Highly recommended for those who do not have budget to invest in software like Rational Tester.
  2. posted by jack dausman on Friday 17 August 2007 AD:
    Stephan, you are the wizard. I can't believe I haven't heard of using JMeter against a Domino app. Thanks !
  3. posted by Jake Howlett on Monday 20 August 2007 AD:
    Brilliant! Thanks for sharing!!
  4. posted by Mark Leusink on Thursday 11 October 2007 AD:
    Good (and simple) explanation! Didn't know it was that easy to set up a basic stress test.

    I've played around with jMeter and configured it to also simulate user logins (when using session authentication on the Domino server). Here's how to set it up:

    - Add a "HTTP Cookie Manager" config element to the thread group (via add -> config element). This will automatically "record" any cookies received.
    - Add a HTTP Request that simulates the login: set the path to "/names.nsf?login", the method to "POST", disable "Redirect automatically" and enable "Follow Redirects". Add the following parameters: Username and Password. Set the values of these parameters to the credentials you'd like to login with.
    - Any HTTP requests after the login will automatically be performed as the authenticated user.

    You should perform a final GET request to /names.nsf?Logout to logoff the user(s).
  5. posted by Mohankumar on Monday 09 March 2009 AD:
    Can you help me how to test the Lotus notes application in JMeter?.

    we are able to send the request in JMeter through Proxy Server for record and playback. but unable to rerun the test successfully.
  6. posted by Tony R. on Tuesday 27 October 2009 AD:
    will JMeter also work if the Lotus Domino app to be tested is not a web app?
  7. posted by Richard Yusuf on Wednesday 19 February 2014 AD:
    I'm confuse about JMeter? Emoticon shocked.gif Emoticon sad.gif