JMeter - some functions can't be executed in Function Helper - jmeter

About JMeter Function Helper Dialog, It's a great tool, but some functions can't be executed using it when expecting variables to be available
__split function have mandatory variable name throws exception for example when calling ${__split(a,a,)}
Also function __isVarDefined gets a NullPointerException:
2018-02-12 08:03:20,603 ERROR o.a.j.e.ClientJMeterEngine: Error calling function ${__split(a,a,)}
java.lang.UnsupportedOperationException: null
at org.apache.jmeter.threads.UnmodifiableJMeterVariables.put(UnmodifiableJMeterVariables.java:73) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.functions.SplitFunction.execute(SplitFunction.java:99) ~[ApacheJMeter_functions.jar:4.0 r1823414]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.functions.gui.FunctionHelper.actionPerformed(FunctionHelper.java:200) [ApacheJMeter_core.jar:4.0 r1823414]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [?:1.8.0_25]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [?:1.8.0_25]
at java.awt.Component.processMouseEvent(Unknown Source) [?:1.8.0_25]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Component.processEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Container.processEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Window.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
Also new function __isVarDefined from JMeter 4 gets a NullPointerException:
2018-02-11 10:32:38,093 ERROR o.a.j.e.ClientJMeterEngine: Error calling function ${__isVarDefined(a)}
java.lang.NullPointerException: null
at org.apache.jmeter.functions.IsVarDefined.execute(IsVarDefined.java:53) ~[ApacheJMeter_functions.jar:4.0 r1823414]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.functions.gui.FunctionHelper.actionPerformed(FunctionHelper.java:200) [ApacheJMeter_core.jar:4.0 r1823414]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [?:1.8.0_25]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [?:1.8.0_25]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [?:1.8.0_25]
at java.awt.Component.processMouseEvent(Unknown Source) [?:1.8.0_25]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Component.processEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Container.processEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [?:1.8.0_25]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Window.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
Should JMeter initialize variables in Function Helpers or is it irrelevant and therefore need to add a warning that it's unavailable without variable context?

The functions that are usually not testable in Function Helper Dialog require some context:
Properties set
Variables set
...
This is a limitation identified under following enhancement:
https://bz.apache.org/bugzilla/show_bug.cgi?id=61834
Feel free to contribute a patch if you have some idea, an example would be:
An empty JMeterVariable could be created
A Text Area where user can input some Groovy Code to fill in this object or other properties
This way any function could be testable.

Related

Big json handling with jmeter

Hi guys i have some problems handling a big json input with jmeter (about 55 k rows). Initially i tried to use the function
${__FileToString(myPath/test.json,,)}
but seems like this doesn't work properly: I got another error during the process.
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "1["
at java.net.URLDecoder.decode(Unknown Source) ~[?:1.8.0_301]
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.decodeQuery(RequestViewHTTP.java:336) ~[ApacheJMeter_http.jar:5.5]
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap(RequestViewHTTP.java:306) ~[ApacheJMeter_http.jar:5.5]
at org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.setSamplerResult(RequestViewHTTP.java:216) ~[ApacheJMeter_http.jar:5.5]
at org.apache.jmeter.visualizers.RequestPanel.setSamplerResult(RequestPanel.java:116) ~[ApacheJMeter_components.jar:5.5]
at org.apache.jmeter.visualizers.SamplerResultTab.setupTabPane(SamplerResultTab.java:256) ~[ApacheJMeter_components.jar:5.5]
at org.apache.jmeter.visualizers.ViewResultsFullVisualizer.valueChanged(ViewResultsFullVisualizer.java:395) ~[ApacheJMeter_components.jar:5.5]
at org.apache.jmeter.visualizers.ViewResultsFullVisualizer.valueChanged(ViewResultsFullVisualizer.java:373) ~[ApacheJMeter_components.jar:5.5]
at javax.swing.JTree.fireValueChanged(Unknown Source) ~[?:1.8.0_301]
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) ~[?:1.8.0_301]
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source) ~[?:1.8.0_301]
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source) ~[?:1.8.0_301]
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source) ~[?:1.8.0_301]
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source) ~[?:1.8.0_301]
at javax.swing.JTree.setSelectionPath(Unknown Source) ~[?:1.8.0_301]
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source) ~[?:1.8.0_301]
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source) ~[?:1.8.0_301]
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source) ~[?:1.8.0_301]
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) ~[?:1.8.0_301]
at java.awt.Component.processMouseEvent(Unknown Source) ~[?:1.8.0_301]
at javax.swing.JComponent.processMouseEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.Component.processEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.Container.processEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:1.8.0_301]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_301]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_301]
at java.awt.Window.dispatchEventImpl(Unknown Source) ~[?:1.8.0_301]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue.access$500(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_301]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_301]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_301]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_301]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_301]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[?:1.8.0_301]
at java.awt.EventDispatchThread.run(Unknown Source) ~[?:1.8.0_301]
I don't know how to solve this problem, I tried this request on postman and I have no problem. Is there someone that can help me?
The "error" you're getting is not connected with sending the request, it's rather rendering it using View Results Tree listener, most probably you chose some rendering format which doesn't match JSON or using GET method instead of POST or whatever.
If your request works fine in Postman you can just record it using JMeter's HTTP(S) Test Script Recorder and parameterize it as required
Also be informed of HTTP Raw Request sampler which has nice feature or streaming the file directly to the backend without loading it into memory first, check out HTTP Raw Request for SOAP + MTOM thread for more details.
HTTP Raw Request sampler can be installed using JMeter Plugins Manager

keytool error: java.lang.RuntimeException: java.io.IOException: DNSName components must begin with a letter << Command failed, code: 1

This question already has an answer here.
From past few days I am working with jmeter. It is working perfectly.
But today as I am trying to record a new script using http script recorder, when I am clicking on start, I am getting below exception..
java.io.IOException: >> keytool error: java.lang.RuntimeException: java.io.IOException: DNSName components must begin with a letter <<
Command failed, code: 1
'keytool -genkeypair -alias 104.211.242.218 -dname "cn=104.211.242.218, o=JMeter Proxy (TEMPORARY TRUST ONLY)" -keyalg RSA -keystore proxyserver.jks -storepass {redacted} -keypass {redacted} -validity 7 -ext san=dns:104.211.242.218'
at org.apache.jorphan.exec.KeyToolUtils.genkeypair(KeyToolUtils.java:171) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.exec.KeyToolUtils.generateSignedCert(KeyToolUtils.java:285) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.exec.KeyToolUtils.generateHostCert(KeyToolUtils.java:276) ~[jorphan.jar:4.0 r1823414]
at org.apache.jmeter.protocol.http.proxy.ProxyControl.initDynamicKeyStore(ProxyControl.java:1540) ~[ApacheJMeter_http.jar:4.0 r1823414]
at org.apache.jmeter.protocol.http.proxy.ProxyControl.initKeyStore(ProxyControl.java:1447) ~[ApacheJMeter_http.jar:4.0 r1823414]
at org.apache.jmeter.protocol.http.proxy.ProxyControl.startProxy(ProxyControl.java:530) [ApacheJMeter_http.jar:4.0 r1823414]
at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.startProxy(ProxyControlGui.java:569) [ApacheJMeter_http.jar:4.0 r1823414]
at org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui.actionPerformed(ProxyControlGui.java:424) [ApacheJMeter_http.jar:4.0 r1823414]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [?:1.8.0_131]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [?:1.8.0_131]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [?:1.8.0_131]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [?:1.8.0_131]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [?:1.8.0_131]
at java.awt.Component.processMouseEvent(Unknown Source) [?:1.8.0_131]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [?:1.8.0_131]
at java.awt.Component.processEvent(Unknown Source) [?:1.8.0_131]
at java.awt.Container.processEvent(Unknown Source) [?:1.8.0_131]
at java.awt.Component.dispatchEventImpl(Unknown Source) [?:1.8.0_131]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_131]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_131]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [?:1.8.0_131]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [?:1.8.0_131]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [?:1.8.0_131]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_131]
at java.awt.Window.dispatchEventImpl(Unknown Source) [?:1.8.0_131]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_131]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_131]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_131]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_131]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_131]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_131]
It might be due to a bug in Java as there are a lot of domains which start with number like
9292.nl
9gag.com
So the options are in:
Look for Java version which is not impacted, i.e. JDK 8 u 151
Use alternative recording solution like JMeter Chrome Extension

Exception when using mouse scoll on sub menu items

I click on Add -> any option as Config Elements and then scroll mouse up/down
There are Uncaught exception per scroll:
2018-03-26 13:47:18,742 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.ArrayIndexOutOfBoundsException: -25
at org.apache.jorphan.gui.MenuScroller.refreshMenu(MenuScroller.java:550) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.gui.MenuScroller.access$300(MenuScroller.java:55) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.gui.MenuScroller$MouseScrollListener.mouseWheelMoved(MenuScroller.java:576) ~[jorphan.jar:4.0 r1823414]
at java.awt.Component.processMouseWheelEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.processEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.processEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Window.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
Notice it happens only in sub menu and also in JMeter 3.3 and latest 4.0 versions
Option to scroll example:
EDIT
Error in vanilla JMeter 4.0 after change Root to log level debug :
2018-03-26 14:46:22,799 DEBUG o.a.j.g.GuiPackage: Updating gui to new node
2018-03-26 14:46:22,800 DEBUG o.a.j.g.GuiPackage: Showing pop up for org.apache.jmeter.gui.MainFrame$1[,0,0,374x759,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.synth.SynthBorder#29c29532,flags=16777704,maximumSize=,minimumSize=,preferredSize=,editable=false,invokesStopCellEditing=false,largeModel=false,rootVisible=false,rowHeight=0,scrollsOnExpand=true,showsRootHandles=true,toggleClickCount=2,visibleRowCount=20] at x,y = 77,15
2018-03-26 14:46:24,618 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.ArrayIndexOutOfBoundsException: -38
at org.apache.jorphan.gui.MenuScroller.refreshMenu(MenuScroller.java:550) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.gui.MenuScroller.access$300(MenuScroller.java:55) ~[jorphan.jar:4.0 r1823414]
at org.apache.jorphan.gui.MenuScroller$MouseScrollListener.mouseWheelMoved(MenuScroller.java:576) ~[jorphan.jar:4.0 r1823414]
at java.awt.Component.processMouseWheelEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.processEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.processEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.dispatchEventToSelf(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchMouseWheelToAncestor(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Window.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
This is a bug in JMeter application and only occur if you open the menu and then perform scroll down action.
I would suggest not to scroll down when all options are visible and just select the option that you needed.
JMeter issue tracker is at https://bz.apache.org/bugzilla/, not here
The issue cannot be reproduced on vanilla JMeter 4.0 and 3.3 so kindly update your question with contents of "lib" and "lib/ext" folders of your JMeter installation. You will be asked the same by JMeter developers as well as JMeter logs with increased level of verbosity, you will need to change <Root level="info"> to i.e. <Root level="debug"> in log4j2.xml file (lives in JMeter's "bin" folder)
The recommended way of installing JMeter Plugins is via JMeter Plugins Manager

JMeter GUI - execute using NewDriver failed to view Function Helper Dialog

I try to test a new function in JMeter.
I download JMeter 3.3 code and add plugins including JMeterPluginsCMD
I also download jmeter-plugins-extras-1.4.0.jar with HttpSimpleTableControlGui class
I execute NewDriver which opens JMeter GUI, I try to open Options -> Function Helper Dialog but I have no functions
log:
2017-11-13 16:16:56,661 WARN o.a.j.g.u.MenuFactory: Could not instantiate class: org.jmeterplugins.protocol.http.control.gui.HttpSimpleTableControlGui
java.lang.ClassNotFoundException: org.jmeterplugins.protocol.http.control.gui.HttpSimpleTableControlGui
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_25]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_25]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_25]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_25]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_25]
at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:499) [core/:?]
at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:169) [core/:?]
at org.apache.jmeter.control.gui.WorkBenchGui.createPopupMenu(WorkBenchGui.java:119) [core/:?]
at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:159) [core/:?]
at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:46) [core/:?]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) [core/:?]
at org.apache.jmeter.gui.action.ActionRouter.lambda$0(ActionRouter.java:70) [core/:?]
at org.apache.jmeter.gui.action.ActionRouter$$Lambda$43/1433208870.run(Unknown Source) [core/:?]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
2017-11-13 16:16:59,670 ERROR o.a.j.g.a.ActionRouter: Error processing org.apache.jmeter.gui.action.CreateFunctionDialog#45e37a7e
java.lang.NullPointerException: null
at org.apache.jmeter.functions.gui.FunctionHelper.initParameterPanel(FunctionHelper.java:165) ~[core/:?]
at org.apache.jmeter.functions.gui.FunctionHelper.setVisible(FunctionHelper.java:228) ~[core/:?]
at org.apache.jmeter.gui.action.CreateFunctionDialog.doAction(CreateFunctionDialog.java:50) ~[core/:?]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) [core/:?]
at org.apache.jmeter.gui.action.ActionRouter.lambda$0(ActionRouter.java:70) [core/:?]
at org.apache.jmeter.gui.action.ActionRouter$$Lambda$43/1433208870.run(Unknown Source) [core/:?]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
The recommended way of installing JMeter Plugins and keeping them up-to-date is using JMeter Plugins Manager
I do confirm that brand new JMeter 3.3 and HTTP Simple Table Server work fine together without any issues with The Function Helper Dialog.
So my expectations are in:
Your installation is broken, you should have:
jmeter-plugins-table-server-2.2.jar in "lib/ext" folder
jmeter-plugins-cmn-jmeter-0.4.jar in "lib" folder
JMeter restart is required to pick any .jars up
(most likely) Your function implementation is flaky. If this is the case you will need to provide your function code along with the question.
It seems that the right (or possible) way to call JMeter GUI is
ant run_gui
Function Helper worked with my changes

JMeter 3.3 __RandomDate with no parameters throws exception in Function Helper Dialog

I use JMeter 3.3, I opened the Function Helper and tried the new function __RandomDate, Click Generate and got an error (other functions are working)
When calling in Test Plan ${__RandomDate(,2017-01-01,2018-01-01,,)} it works, but in Function Helper when you click Generate it ignores the input field and use the function without any values
2017-09-25 08:44:30,112 ERROR o.a.j.f.RandomDate: Failed to parse the date '' to shift with formatter 'Value(YearOfEra,4,19,EXCEEDS_PAD)'-'Value(MonthOfYear,2)'-'Value(DayOfMonth,2)java.time.format.DateTimeFormatterBuilder$DefaultValueParser#6426866cjava.time.format.DateTimeFormatterBuilder$DefaultValueParser#4b46653bjava.time.format.DateTimeFormatterBuilder$DefaultValueParser#108462fd'
java.time.format.DateTimeParseException: Text '' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source) ~[?:1.8.0_144]
at java.time.format.DateTimeFormatter.parse(Unknown Source) ~[?:1.8.0_144]
at java.time.LocalDate.parse(Unknown Source) ~[?:1.8.0_144]
at org.apache.jmeter.functions.RandomDate.execute(RandomDate.java:189) [ApacheJMeter_functions.jar:3.3 r1808647]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) [ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.functions.gui.FunctionHelper.actionPerformed(FunctionHelper.java:181) [ApacheJMeter_core.jar:3.3 r1808647]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [?:1.8.0_144]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [?:1.8.0_144]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [?:1.8.0_144]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [?:1.8.0_144]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [?:1.8.0_144]
at java.awt.Component.processMouseEvent(Unknown Source) [?:1.8.0_144]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [?:1.8.0_144]
at java.awt.Component.processEvent(Unknown Source) [?:1.8.0_144]
at java.awt.Container.processEvent(Unknown Source) [?:1.8.0_144]
at java.awt.Component.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_144]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [?:1.8.0_144]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [?:1.8.0_144]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [?:1.8.0_144]
at java.awt.Container.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
at java.awt.Window.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
at java.awt.Component.dispatchEvent(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_144]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$4.run(Unknown Source) [?:1.8.0_144]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_144]
2017-09-25 08:44:30,113 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.IllegalArgumentException: bound must be greater than origin
at java.util.concurrent.ThreadLocalRandom.nextLong(Unknown Source) ~[?:1.8.0_144]
at org.apache.jmeter.functions.RandomDate.execute(RandomDate.java:196) ~[ApacheJMeter_functions.jar:3.3 r1808647]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.functions.gui.FunctionHelper.actionPerformed(FunctionHelper.java:181) ~[ApacheJMeter_core.jar:3.3 r1808647]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) ~[?:1.8.0_144]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) ~[?:1.8.0_144]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) ~[?:1.8.0_144]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) ~[?:1.8.0_144]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) ~[?:1.8.0_144]
at java.awt.Component.processMouseEvent(Unknown Source) ~[?:1.8.0_144]
at javax.swing.JComponent.processMouseEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.Component.processEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.Container.processEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.Component.dispatchEventImpl(Unknown Source) ~[?:1.8.0_144]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_144]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.Container.dispatchEventImpl(Unknown Source) ~[?:1.8.0_144]
at java.awt.Window.dispatchEventImpl(Unknown Source) ~[?:1.8.0_144]
at java.awt.Component.dispatchEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue.access$500(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) ~[?:1.8.0_144]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue$4.run(Unknown Source) ~[?:1.8.0_144]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[?:1.8.0_144]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_144]
EDIT
Opened a bug.
You're getting an error because "End date" is mandatory.
Since 3.3, Generate does an additional thing which is to show the result of function call.
But as you're not filling end date it fails with the error message you mention.
Fill in the required parameters and it works as documented:
http://jmeter.apache.org/usermanual/functions.html#__RandomDate
As you can see End date is required

Resources