Apache JMeter
2.0.1.20050615

org.apache.jmeter.protocol.http.control.gui
Class AccessLogSamplerGui

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.apache.jmeter.gui.AbstractJMeterGuiComponent
                      extended byorg.apache.jmeter.samplers.gui.AbstractSamplerGui
                          extended byorg.apache.jmeter.protocol.http.control.gui.AccessLogSamplerGui
All Implemented Interfaces:
Accessible, ChangeListener, EventListener, ImageObserver, JMeterGUIComponent, MenuContainer, Serializable, UnsharedComponent

public class AccessLogSamplerGui
extends AbstractSamplerGui
implements ChangeListener, UnsharedComponent

Title: JMeter Access Log utilities
Copyright: Apache.org
Company: nobody
License:

Look at the apache license at the top.

Description:
So what is this log Sampler GUI? It is a sampler that can take Tomcat access logs and use them directly. I wrote a tomcat access log parser to convert each line to a normal HttpSampler. This way, you can stress test your servers using real production traffic. This is useful for a couple of reasons. Some bugs are really hard to track down, which only appear under production traffic. Therefore it is desirable to use the actual queries to simulate the same exact condition to facilitate diagnosis.

If you're working on a project to replace an existing site, it is a good way to simulate the same exact use pattern and compare the results. The goal here is to get as close to apples to apples comparison as possible. Running a select subset of queries against a webserver normally catches a lot, but it won't give an accurate picture of how a system will perform under real requests.
Created on: Jun 26, 2003

Version:
$Id: AccessLogSamplerGui.java,v 1.11 2004/03/05 01:38:02 sebb Exp $
See Also:
Serialized Form

Nested Class Summary
static class AccessLogSamplerGui.Test
          Added basic TestCase for AccessLogSamplerGui.
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 String DEFAULT_GENERATOR
           
 String DEFAULT_PARSER
           
protected  int PORTNUMBER
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AccessLogSamplerGui()
           
 
Method Summary
 void configure(TestElement el)
          the implementation loads the URL and the soap action for the request.
 TestElement createTestElement()
          JMeter test components are separated into a model and a GUI representation.
 String getLabelResource()
          Get the component's resource name, which getStaticLabel uses to derive the component's label in the local language.
 int getPortNumber()
          Utility method to parse the string and get a int port number.
 void handleGeneratorEvent()
          handleGeneratorEvent is used to check the generator class.
 void handleParserEvent()
          handleParserEvent is used to check the parser class.
 void modifyTestElement(TestElement s)
          Modifies a given TestElement to mirror the data in the gui components.
 void stateChanged(ChangeEvent event)
          stateChanged implements logic for the text field and file chooser.
 
Methods inherited from class org.apache.jmeter.samplers.gui.AbstractSamplerGui
createPopupMenu, getMenuCategories
 
Methods inherited from class org.apache.jmeter.gui.AbstractJMeterGuiComponent
clear, configureTestElement, createTitleLabel, getDocAnchor, getName, getNamePanel, getNode, getStaticLabel, isEnabled, makeBorder, makeScrollPane, makeScrollPane, makeTitlePanel, setEnabled, setName, setNode
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PORTNUMBER

protected int PORTNUMBER

DEFAULT_GENERATOR

public String DEFAULT_GENERATOR

DEFAULT_PARSER

public String DEFAULT_PARSER
Constructor Detail

AccessLogSamplerGui

public AccessLogSamplerGui()
Method Detail

getLabelResource

public String getLabelResource()
Description copied from interface: JMeterGUIComponent
Get the component's resource name, which getStaticLabel uses to derive the component's label in the local language. The resource name is fixed, and does not vary with the selected language.

Specified by:
getLabelResource in interface JMeterGUIComponent
Overrides:
getLabelResource in class AbstractJMeterGuiComponent
See Also:
JMeterGUIComponent.getStaticLabel()

createTestElement

public TestElement createTestElement()
Description copied from interface: JMeterGUIComponent
JMeter test components are separated into a model and a GUI representation. The model holds the data and the GUI displays it. The GUI class is responsible for knowing how to create and initialize with data the model class that it knows how to display, and this method is called when new test elements are created.

Specified by:
createTestElement in interface JMeterGUIComponent
Returns:
the Test Element object that the GUI component represents.
See Also:
JMeterGUIComponent.createTestElement()

getPortNumber

public int getPortNumber()
Utility method to parse the string and get a int port number. If it couldn't parse the string to an integer, it will return the default port 80.

Returns:
port number

modifyTestElement

public void modifyTestElement(TestElement s)
Modifies a given TestElement to mirror the data in the gui components.

Specified by:
modifyTestElement in interface JMeterGUIComponent
Parameters:
s - the TestElement to modify
See Also:
JMeterGUIComponent.modifyTestElement(TestElement)

configure

public void configure(TestElement el)
the implementation loads the URL and the soap action for the request.

Specified by:
configure in interface JMeterGUIComponent
Overrides:
configure in class AbstractJMeterGuiComponent
Parameters:
el - the TestElement to configure

stateChanged

public void stateChanged(ChangeEvent event)
stateChanged implements logic for the text field and file chooser. When the value in the widget changes, it will call the corresponding method to create the parser and initialize the generator.

Specified by:
stateChanged in interface ChangeListener

handleParserEvent

public void handleParserEvent()
handleParserEvent is used to check the parser class. If it is not valid, it should pop up an error message.


handleGeneratorEvent

public void handleGeneratorEvent()
handleGeneratorEvent is used to check the generator class. If it is not valid, it should pop up an error message.


Apache JMeter
2.0.1.20050615

Copyright © 1998-2005 Apache Software Foundation. All Rights Reserved.