Package org.apache.jmeter.util
Class JMeterUtils
java.lang.Object
org.apache.jmeter.util.JMeterUtils
- All Implemented Interfaces:
- UnitTestManager
This class contains the static utility methods used by JMeter.
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic voidaddLocaleChangeListener(LocaleChangeListener listener) static voidapplyHiDPI(JTable table) Apply HiDPI mode management toJTablestatic voidApply HiDPI scale factor on font if HiDPI mode is enabledstatic voidapplyScaleOnFonts(float scale) Apply HiDPI scale factor on fontsstatic voidclearMatcherMemory(org.apache.oro.text.regex.Perl5Matcher matcher, org.apache.oro.text.regex.Pattern pattern) Hack to make matcher clean the two internal buffers it keeps in memory which size is equivalent to the unzipped page sizestatic PatterncompilePattern(String expression) static PatterncompilePattern(String expression, int flags) static final com.thoughtworks.xstream.XStreamfindClassesThatExtend(Class<?> superClass) Deprecated.static FileFind a file in the current directory or in the JMeter bin directory.static StringformatJMeterExportedVariableName(String elementName) static String[]getArrayPropDefault(String propName, String[] defaultVal) Get an array of String if present and not empty, defaultValue if not present.static StringgetDelimiter(String delimiterValue) Return delimiterValue handling the TAB casestatic booleanProvide info, whether we run in HiDPI modestatic doubleProvide info about the HiDPI scale factorstatic ImageIconThis looks for the requested image in the classpath under org.apache.jmeter.images.<name>static ImageIconThis looks for the requested image in the classpath under org.apache.jmeter.images.<name>, and also sets the description of the image, which is useful if the icon is going to be placed on the clipboard.static StringGet the JMeter bin directory - does not include the trailing separator.static StringGets the JMeter copyright.static StringGet the JMeter home directory - does not include the trailing separator.static PropertiesThis gets the currently defined appProperties.static StringGets the JMeter Version.static LocaleGets the current locale.static StringgetLocaleString(String locale) Get the locale name as a resource.static StringReturns the cached result from calling InetAddress.getLocalHost().getCanonicalHostName()static StringReturns the cached result from calling InetAddress.getLocalHost().getHostAddress()static StringReturns the cached result from calling InetAddress.getLocalHost().getHostName()static org.apache.oro.text.regex.Perl5MatcherGets Perl5Matcher for this thread.static StringgetParsedLabel(String key) To get I18N label from properties filestatic org.apache.oro.text.regex.PatterngetPattern(String expression) Get a compiled expression from the pattern cache (READ_ONLY).static org.apache.oro.text.regex.PatterngetPattern(String expression, int options) Get a compiled expression from the pattern cache.static org.apache.oro.text.PatternCacheLRUstatic booleangetPropDefault(String propName, boolean defaultVal) Get a boolean value with default if not present.static doublegetPropDefault(String propName, double defaultVal) Get a double value with default if not present.static floatgetPropDefault(String propName, float defaultVal) Get a float value with default if not present.static intgetPropDefault(String propName, int defaultVal) Get a int value with default if not present.static longgetPropDefault(String propName, long defaultVal) Get a long value with default if not present.static StringgetPropDefault(String propName, String defaultVal) Get a String value with default if not present.static PropertiesgetProperties(String file) This method is used by the init method to load the property file that may even reside in the user space, or in the classpath under org.apache.jmeter.jmeter.properties.static StringgetProperty(String propName) Get the value of a JMeter property.static intgetRandomInt(int r) Provide random numbersstatic StringgetResourceFileAsText(String name) static StringgetResString(String key) Gets the resource string for this key.static StringgetResString(String key, String defaultValue) Deprecated.Only intended for use in development; use getResString(String) normallystatic StringgetResString(String key, Locale forcedLocale) Gets the resource string for this key in Locale.static String[]Generate a list of paths to search.static voidhelpGC()Help GC by triggering GC and finalizationvoidinitializeProperties(String file) Your implementation will be handed the filename that was provided to AllTests as a configuration file.static voidInitialise the JMeter Localestatic voidDeprecated.does not do anything anymorestatic booleanDetermine whether we are in 'expert' mode.static booleanstatic JLabelstatic JLabelstatic voidloadJMeterProperties(String file) Load the JMeter properties file; if not found, then default to "org/apache/jmeter/jmeter.properties" from the classpathstatic PropertiesloadProperties(String file) This method loads a property file that may reside in the user space, or in the classpathstatic PropertiesloadProperties(String file, Properties defaultProps) This method loads a property file that may reside in the user space, or in the classpathstatic <S> Collection<S>loadServicesAndScanJars(Class<S> service, ServiceLoader<S> serviceLoader, ClassLoader classLoader, ServiceLoadExceptionHandler<? super S> exceptionHandler) Loads services implementing a given interface and scans JMeter search path for the implementations.static LinkedHashMap<String,String> parseHeaders(String headers) Split line into name/value pairs and remove colon ':'static voidRefresh UI after LAF change or resizingstatic voidstatic voidreportErrorToUser(String errorMsg) Report an error through a dialog box.static voidreportErrorToUser(String errorMsg, Exception exception) Report an error through a dialog box.static voidreportErrorToUser(String errorMsg, String titleMsg) Report an error through a dialog box in GUI mode or in logs and stdout in Non GUI modestatic voidreportErrorToUser(String errorMsg, String titleMsg, Exception exception) Report an error through a dialog box in GUI mode or in logs and stdout in Non GUI modestatic voidreportInfoToUser(String msg, String titleMsg) Report an information through a dialog box in GUI modestatic voidRun the runnable in AWT Thread if current thread is not AWT thread otherwise runs callSwingUtilities.invokeAndWait(Runnable)static voidRun the runnable in AWT Thread if current thread is not AWT thread otherwise runs callSwingUtilities.invokeAndWait(Runnable)static voidsetJMeterHome(String home) static voidChanges the current locale: re-reads resource strings and notifies listeners.static ObjectsetProperty(String propName, String propValue) Set a String valuestatic voidsetupXStreamSecurityPolicy(com.thoughtworks.xstream.XStream xstream) Setup default security policystatic StringDeprecated.static StringTakes an array of strings and a tokenizer character, and returns a string of all the strings concatenated with the tokenizer string in between each one.
- 
Field Details- 
THREAD_GROUP_DISTRIBUTED_PREFIX_PROPERTY_NAME- See Also:
 
- 
RES_KEY_PFX- See Also:
 
 
- 
- 
Constructor Details- 
JMeterUtilspublic JMeterUtils()
 
- 
- 
Method Details- 
getMatcherpublic static org.apache.oro.text.regex.Perl5Matcher getMatcher()Gets Perl5Matcher for this thread.- Returns:
- the Perl5Matcherfor this thread
 
- 
getPropertiesThis method is used by the init method to load the property file that may even reside in the user space, or in the classpath under org.apache.jmeter.jmeter.properties. The method also initialises logging and sets up the default Locale TODO - perhaps remove? [still used- Parameters:
- file- the file to load
- Returns:
- the Properties from the file
- See Also:
 
- 
initLoggingDeprecated.does not do anything anymoreInitialise JMeter logging
- 
initLocalepublic static void initLocale()Initialise the JMeter Locale
- 
loadJMeterPropertiesLoad the JMeter properties file; if not found, then default to "org/apache/jmeter/jmeter.properties" from the classpathc.f. loadProperties - Parameters:
- file- Name of the file from which the JMeter properties should be loaded
 
- 
loadPropertiesThis method loads a property file that may reside in the user space, or in the classpath- Parameters:
- file- the file to load
- Returns:
- the Properties from the file, may be null (e.g. file not found)
 
- 
loadPropertiesThis method loads a property file that may reside in the user space, or in the classpath- Parameters:
- file- the file to load
- defaultProps- a set of default properties
- Returns:
- the Properties from the file; if it could not be processed, the defaultProps are returned.
 
- 
compilePattern
- 
compilePattern
- 
getPatternCachepublic static org.apache.oro.text.PatternCacheLRU getPatternCache()
- 
getPatternpublic static org.apache.oro.text.regex.Pattern getPattern(String expression) throws org.apache.oro.text.MalformedCachePatternException Get a compiled expression from the pattern cache (READ_ONLY).- Parameters:
- expression- regular expression to be looked up
- Returns:
- compiled pattern
- Throws:
- org.apache.oro.text.MalformedCachePatternException- (Runtime) This should be caught for expressions that may vary (e.g. user input)
 
- 
getPatternpublic static org.apache.oro.text.regex.Pattern getPattern(String expression, int options) throws org.apache.oro.text.MalformedCachePatternException Get a compiled expression from the pattern cache.- Parameters:
- expression- RE
- options- e.g.- READ_ONLY_MASK
- Returns:
- compiled pattern
- Throws:
- org.apache.oro.text.MalformedCachePatternException- (Runtime) This should be caught for expressions that may vary (e.g. user input)
 
- 
initializePropertiesDescription copied from interface:UnitTestManagerYour implementation will be handed the filename that was provided to AllTests as a configuration file. It can hold whatever properties you need to configure your system prior to the unit tests running.- Specified by:
- initializePropertiesin interface- UnitTestManager
- Parameters:
- file- path to the configuration file
 
- 
loadServicesAndScanJars@API(status=DEPRECATED, since="5.6") public static <S> Collection<S> loadServicesAndScanJars(Class<S> service, ServiceLoader<S> serviceLoader, ClassLoader classLoader, ServiceLoadExceptionHandler<? super S> exceptionHandler) Loads services implementing a given interface and scans JMeter search path for the implementations. This is a transition replacement forClassFinder, and JMeter would migrate toServiceLoader-only lookup in the future.Note: it is not always safe to cache the result as search_pathsproperty might change over time- Type Parameters:
- S- type of service (class or interface)
- Parameters:
- service- interface that services should extend.
- serviceLoader- ServiceLoader to fetch services.
- classLoader- classLoader to use when searching for classes on the search path.
- exceptionHandler- exception handler to use for services that fail to load.
- Returns:
- collection of services that load successfully
 
- 
findClassesThatExtend@API(status=DEPRECATED, since="5.6") @Deprecated public static List<String> findClassesThatExtend(Class<?> superClass) throws IOException Deprecated.Convenience method forClassFinder.findClassesThatExtend(String[], Class[], boolean)with the option to include inner classes in the search set to false and the path list is derived from JMeterUtils.getSearchPaths().- Parameters:
- superClass- - single class to search for
- Returns:
- List of Strings containing discovered class names.
- Throws:
- IOException- when the used- ClassFinderthrows one while searching for the class
 
- 
getSearchPathsGenerate a list of paths to search. The output array always starts with JMETER_HOME/lib/ext and is followed by any paths obtained from the "search_paths" JMeter property.- Returns:
- array of path strings
 
- 
getRandomIntpublic static int getRandomInt(int r) Provide random numbers- Parameters:
- r- - the upper bound (exclusive)
- Returns:
- a random int
 
- 
setLocaleChanges the current locale: re-reads resource strings and notifies listeners.- Parameters:
- loc- - new locale
 
- 
getLocaleGets the current locale.- Returns:
- current locale
 
- 
addLocaleChangeListener
- 
removeLocaleChangeListener
- 
getResStringGets the resource string for this key. If the resource is not found, a warning is logged- Parameters:
- key- the key in the resource file
- Returns:
- the resource string if the key is found; otherwise, return "[res_key="+key+"]"
 
- 
getResStringGets the resource string for this key in Locale. If the resource is not found, a warning is logged- Parameters:
- key- the key in the resource file
- forcedLocale- Force a particular locale
- Returns:
- the resource string if the key is found; otherwise, return "[res_key="+key+"]"
- Since:
- 2.7
 
- 
getResStringDeprecated.Only intended for use in development; use getResString(String) normallyGets the resource string for this key. If the resource is not found, a warning is logged- Parameters:
- key- the key in the resource file
- defaultValue- - the default value
- Returns:
- the resource string if the key is found; otherwise, return the default
 
- 
getParsedLabelTo get I18N label from properties file- Parameters:
- key- in messages.properties
- Returns:
- I18N label without (if exists) last colon ':' and spaces
 
- 
getLocaleStringGet the locale name as a resource. Does not log an error if the resource does not exist. This is needed to support additional locales, as they won't be in existing messages files.- Parameters:
- locale- name
- Returns:
- the locale display name as defined in the current Locale or the original string if not present
 
- 
getJMeterPropertiesThis gets the currently defined appProperties. It can only be called after thegetProperties(String)orloadJMeterProperties(String)method has been called.- Returns:
- The JMeterProperties value,
         may be null if loadJMeterProperties(String)has not been called
- See Also:
 
- 
getImageThis looks for the requested image in the classpath under org.apache.jmeter.images.<name>- Parameters:
- name- Description of Parameter
- Returns:
- The Image value
 
- 
getImageThis looks for the requested image in the classpath under org.apache.jmeter.images.<name>, and also sets the description of the image, which is useful if the icon is going to be placed on the clipboard.- Parameters:
- name- the name of the image
- description- the description of the image
- Returns:
- The Image value
 
- 
getResourceFileAsText
- 
getPropDefaultGet a int value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getPropDefaultGet a boolean value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getArrayPropDefaultGet an array of String if present and not empty, defaultValue if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getPropDefaultGet a long value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getPropDefaultGet a float value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getPropDefaultGet a double value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value
 
- 
getPropDefaultGet a String value with default if not present.- Parameters:
- propName- the name of the property.
- defaultVal- the default value.
- Returns:
- The PropDefault value applying a trim on it
 
- 
getPropertyGet the value of a JMeter property.- Parameters:
- propName- the name of the property.
- Returns:
- the value of the JMeter property, or nullif not defined
 
- 
setPropertySet a String value- Parameters:
- propName- the name of the property.
- propValue- the value of the property
- Returns:
- the previous value of the property
 
- 
reportErrorToUserReport an error through a dialog box. Title defaults to "error_title" resource string- Parameters:
- errorMsg- - the error message.
 
- 
reportErrorToUserReport an error through a dialog box in GUI mode or in logs and stdout in Non GUI mode- Parameters:
- errorMsg- - the error message.
- titleMsg- - title string
 
- 
reportErrorToUserReport an error through a dialog box. Title defaults to "error_title" resource string- Parameters:
- errorMsg- - the error message.
- exception-- Exception
 
- 
reportErrorToUserReport an error through a dialog box in GUI mode or in logs and stdout in Non GUI mode- Parameters:
- errorMsg- - the error message.
- titleMsg- - title string
- exception- Exception
 
- 
reportInfoToUserReport an information through a dialog box in GUI mode- Parameters:
- msg- - the information message.
- titleMsg- - title string
 
- 
labelFor- Parameters:
- component- component for the label
- resourceId- resource ID to be used for retrieving label text
- Returns:
- JLabel instance
 
- 
labelFor- Parameters:
- component- component for the label
- labelValue- label text
- name- JLabel name
- Returns:
- JLabel instance
 
- 
unsplitDeprecated.Takes an array of strings and a tokenizer character, and returns a string of all the strings concatenated with the tokenizer string in between each one.- Parameters:
- splittee- Array of Objects to be concatenated.
- splitChar- Object to unsplit the strings with.
- Returns:
- Array of all the tokens.
 
- 
unsplitTakes an array of strings and a tokenizer character, and returns a string of all the strings concatenated with the tokenizer string in between each one.- Parameters:
- splittee- Array of Objects to be concatenated.
- splitChar- Object to unsplit the strings with.
- def- Default value to replace null values in array.
- Returns:
- Array of all the tokens.
 
- 
isTestRunningpublic static boolean isTestRunning()- Returns:
- true if test is running
 
- 
getJMeterHomeGet the JMeter home directory - does not include the trailing separator.- Returns:
- the home directory
 
- 
getJMeterBinDirGet the JMeter bin directory - does not include the trailing separator.- Returns:
- the bin directory
 
- 
setJMeterHome
- 
getJMeterVersionGets the JMeter Version.- Returns:
- the JMeter version string
 
- 
getJMeterCopyrightGets the JMeter copyright.- Returns:
- the JMeter copyright string
 
- 
isExpertModepublic static boolean isExpertMode()Determine whether we are in 'expert' mode. Certain features may be hidden from user's view unless in expert mode.- Returns:
- true if we're in expert mode
 
- 
findFileFind a file in the current directory or in the JMeter bin directory.- Parameters:
- fileName- the name of the file to find
- Returns:
- File object
 
- 
getLocalHostIPReturns the cached result from calling InetAddress.getLocalHost().getHostAddress()- Returns:
- String representation of local IP address
 
- 
getLocalHostNameReturns the cached result from calling InetAddress.getLocalHost().getHostName()- Returns:
- local host name
 
- 
getLocalHostFullNameReturns the cached result from calling InetAddress.getLocalHost().getCanonicalHostName()- Returns:
- local host name in canonical form
 
- 
parseHeadersSplit line into name/value pairs and remove colon ':'- Parameters:
- headers- multi-line string headers
- Returns:
- a map name/value for each header
 
- 
runSafeRun the runnable in AWT Thread if current thread is not AWT thread otherwise runs callSwingUtilities.invokeAndWait(Runnable)- Parameters:
- runnable-- Runnable
 
- 
runSafeRun the runnable in AWT Thread if current thread is not AWT thread otherwise runs callSwingUtilities.invokeAndWait(Runnable)- Parameters:
- synchronous- flag, whether we will wait for the AWT Thread to finish its job.
- runnable-- Runnable
 
- 
helpGCpublic static void helpGC()Help GC by triggering GC and finalization
- 
clearMatcherMemorypublic static void clearMatcherMemory(org.apache.oro.text.regex.Perl5Matcher matcher, org.apache.oro.text.regex.Pattern pattern) Hack to make matcher clean the two internal buffers it keeps in memory which size is equivalent to the unzipped page size- Parameters:
- matcher-- Perl5Matcher
- pattern- Pattern
 
- 
getHiDPIMode@API(since="5.3", status=DEPRECATED) public static boolean getHiDPIMode()Provide info, whether we run in HiDPI mode- Returns:
- trueif we run in HiDPI mode,- falseotherwise
 
- 
getHiDPIScaleFactor@API(since="5.3", status=DEPRECATED) public static double getHiDPIScaleFactor()Provide info about the HiDPI scale factor- Returns:
- the factor by which we should scale elements for HiDPI mode
 
- 
applyHiDPIApply HiDPI mode management toJTable- Parameters:
- table- the- JTablewhich should be adapted for HiDPI mode
 
- 
getDelimiterReturn delimiterValue handling the TAB case- Parameters:
- delimiterValue- Delimited value
- Returns:
- String delimited modified to handle correctly tab
- Throws:
- JMeterError- if delimiterValue has a length different from 1
 
- 
applyHiDPIOnFonts@API(since="5.3", status=DEPRECATED) public static void applyHiDPIOnFonts()Apply HiDPI scale factor on font if HiDPI mode is enabled
- 
applyScaleOnFonts@API(since="5.3", status=DEPRECATED) public static void applyScaleOnFonts(float scale) Apply HiDPI scale factor on fonts- Parameters:
- scale- float scale to apply
 
- 
refreshUIpublic static void refreshUI()Refresh UI after LAF change or resizing
- 
setupXStreamSecurityPolicypublic static void setupXStreamSecurityPolicy(com.thoughtworks.xstream.XStream xstream) Setup default security policy- Parameters:
- xstream-- XStream
 
- 
formatJMeterExportedVariableName- Parameters:
- elementName- String elementName
- Returns:
- variable name for index following JMeter convention
 
- 
createXStreampublic static final com.thoughtworks.xstream.XStream createXStream()- Returns:
- XStreamXStream instance following JMeter security policy
 
 
- 
loadServicesAndScanJars(Class, ServiceLoader, ClassLoader, ServiceLoadExceptionHandler)instead