org.apache.jmeter.functions

## Class XPath

- java.lang.Object
- - org.apache.jmeter.functions.AbstractFunction
  - - org.apache.jmeter.functions.XPath

- All Implemented Interfaces:
    Function

      public class XPath
      extends AbstractFunction

  The function represented by this class allows data to be read from XML files.

  Syntax is similar to the CVSRead function. The function allows the test to line-thru the nodes in the XML file - one node per each test, e.g. inserting the following in the test scripts:

       ${_XPath(c:/BOF/abcd.xml,/xpath/)} // match the (first) node
       ${_XPath(c:/BOF/abcd.xml,/xpath/)} // Go to next match of '/xpath/' expression

  NOTE: A single instance of each different file/expression combination is opened and used for all threads.
  Since:
    2.0.3

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XPath()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `execute(SampleResult previousResult, Sampler currentSampler)` N.B.
    `List<String>` | `getArgumentDesc()` Return a list of strings briefly describing each parameter your function takes.
    `String` | `getReferenceKey()` Return the name of your function.
    `void` | `setParameters(Collection<CompoundVariable> parameters)` Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)

    - ### Methods inherited from class org.apache.jmeter.functions.AbstractFunction

      `addVariableValue, checkMinParameterCount, checkParameterCount, checkParameterCount, execute, getVariables`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XPath

          public XPath()

  - ### Method Detail

    - #### execute

          public String execute(SampleResult previousResult,
                                Sampler currentSampler)
                         throws InvalidVariableException

      N.B. execute() should be synchronized if function is operating with non-thread-safe objects (e.g. operates with files).

      JMeter ensures setParameters() happens-before execute(): setParameters is executed in main thread, and worker threads are started after that.
      Specified by:
        `execute` in interface `Function`
      Specified by:
        `execute` in class `AbstractFunction`
      Parameters:
        `previousResult` - The previous `SampleResult`
        `currentSampler` - The current `Sampler`
      Returns:
        The replacement value, which was generated by the function
      Throws:
        `InvalidVariableException` - - when the variables for the function call can't be evaluated
      See Also:
        `Function.execute(SampleResult, Sampler)`

    - #### getArgumentDesc

          public List<String> getArgumentDesc()

      Return a list of strings briefly describing each parameter your function takes. Please use JMeterUtils.getResString(resource_name) to grab a resource string. Otherwise, your help text will be difficult to internationalize. This list is not optional. If you don't wish to write help, you must at least return a List containing the correct number of blank strings, one for each argument.
      Returns:
        List with brief descriptions for each parameter the function takes

    - #### getReferenceKey

          public String getReferenceKey()

      Return the name of your function. Convention is to prepend "__" to the name (ie "__regexFunction")
      Specified by:
        `getReferenceKey` in interface `Function`
      Specified by:
        `getReferenceKey` in class `AbstractFunction`
      Returns:
        The name of the function
      See Also:
        `Function.getReferenceKey()`

    - #### setParameters

          public void setParameters(Collection<CompoundVariable> parameters)
                             throws InvalidVariableException

      Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)
      Specified by:
        `setParameters` in interface `Function`
      Specified by:
        `setParameters` in class `AbstractFunction`
      Parameters:
        `parameters` - The parameters for the function call
      Throws:
        `InvalidVariableException` - - when the variables for the function call can't be evaluated
      See Also:
        `Function.setParameters(Collection)`

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