Class AccessLogSampler

  • All Implemented Interfaces:
    java.io.Serializable , java.lang.Cloneable , org.apache.jmeter.engine.util.ConfigMergabilityIndicator , org.apache.jmeter.gui.Replaceable , org.apache.jmeter.gui.Searchable , org.apache.jmeter.protocol.http.util.HTTPConstantsInterface , org.apache.jmeter.samplers.Interruptible , org.apache.jmeter.samplers.Sampler , org.apache.jmeter.testbeans.TestBean , org.apache.jmeter.testelement.TestElement , org.apache.jmeter.testelement.TestIterationListener , org.apache.jmeter.testelement.TestStateListener , org.apache.jmeter.testelement.ThreadListener

    
    public class AccessLogSampler
    extends HTTPSampler implements TestBean, ThreadListener
                        

    Description: AccessLogSampler is responsible for a couple of things:

    • creating instances of Generator
    • creating instances of Parser
    • triggering popup windows
    • calling Generator.generateRequest()
    • checking to make sure the classes are valid
    • making sure a class can be instantiated
    The intent of this sampler is it uses the generator and parser to create a HTTPSampler when it is needed. It does not contain logic about how to parse the logs. It also doesn't care how Generator is implemented, as long as it implements the interface. This means a person could simply implement a dummy parser to generate random parameters and the generator consumes the results. This wasn't the original intent of the sampler. I originally wanted to write this sampler, so that I can take production logs to simulate production traffic in a test environment. Doing so is desirable to study odd or unusual behavior. It's also good to compare a new system against an existing system to get near apples-to-apples comparison. I've been asked if benchmarks are really fair comparisons just about every single time, so this helps me accomplish that task.

    Some bugs only appear under production traffic, so it is useful to generate traffic using production logs. This way, JMeter can record when problems occur and provide a way to match the server logs.

    • Constructor Detail

      • AccessLogSampler

        AccessLogSampler()
    • Method Detail

      • getLogFile

         String getLogFile()

        Get the path where XML messages are stored. this is the directory where JMeter will randomly select a file.

      • setLogFile

         void setLogFile(String path)

        Set the path where XML messages are stored for random selection.

        Parameters:
        path - path where to store XML messages
      • setParserClassName

         void setParserClassName(String classname)

        it's kinda obvious, but we state it anyways. Set the xml file with a string path.

        Parameters:
        classname - - parser class name
      • setFilterClassName

         void setFilterClassName(String filterClassName)
        Parameters:
        filterClassName - The filterClassName to set.
      • sampleWithParser

         SampleResult sampleWithParser()

        sample gets a new HTTPSampler from the generator and calls it's sample() method.

      • sample

         SampleResult sample(Entry e)

        sample(Entry e) simply calls sample().

        Parameters:
        e - - ignored
      • instantiateParser

         void instantiateParser()

        Method will instantiate the log parser based on the class in the text field. This was done to make it easier for people to plugin their own log parser and use different log parser.

      • setDomain

         void setDomain(String domain)
        Parameters:
        domain - The domain to set.
      • setImageParsing

         void setImageParsing(boolean imageParsing)
        Parameters:
        imageParsing - The imageParsing to set.
      • setProtocol

         void setProtocol(String value)

        Sets the scheme, with default

        Parameters:
        value - the protocol