apache / jmeter

Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services
https://jmeter.apache.org/
Apache License 2.0
8.28k stars 2.09k forks source link

Darklaf LAF: Selecting a Test element does not work under certain screen resolutions on Windows #5451

Closed asfimport closed 3 years ago

asfimport commented 3 years ago

Dietmar Berchtold (Bug 64984): Steps to Reproduce:

Workaround:

java --version java 11.0.1 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

OS: Microsoft Windows 10 Enterprise 10.0.19041

Created attachment Select_Backend_Listener.gif: Screenrecording

Screenrecording

Severity: normal OS: All

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Created attachment Select_Backend_Listener.jmx: JMX file

Select_Backend_Listener.jmx ````xml false true false influxdbMetricsSender org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender = influxdbUrl http://host_to_change:8086/write?db=jmeter = application application name = measurement jmeter = summaryOnly false = samplersRegex .* = percentiles 99;95;90 = testTitle Test name = eventTags = org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient ````
asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): It looks like this is not only limited to BackendListener element. Also other elements are affected but only in some combinations. e.g. In a complex TestPlan with a lot of "Thread Groups" some "Thread Group" elements work as expect, others behave as described in the issue. When using Version 5.3 of JMeter the issue does not occure.

I also tried the same Test Plan on an other Win 10 Machine. There I could not reproduce the error.

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): Hello, Can you test nightly build please ? https://ci-builds.apache.org/job/JMeter/job/JMeter-trunk/lastSuccessfulBuild/artifact/src/dist/build/distributions/

We plan a release of 5.4.1 if it's ok.

Thanks

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, I tried using 5.4.1-SNAPSHOT 53c6db8. Unfortunately with the same result: Select element is broken.

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, I attached a recording of the issue where Authorization Manager element shows the issue. It looks like Authorization Manager is also vulnerable fo the issue.

Created attachment Select_AuthorizationManager.gif: Recording using AuthorizationManager

Recording using AuthorizationManager
asfimport commented 3 years ago

@FSchumacher (migrated from Bugzilla): Thanks for testing. Are there any messages written to the log files (jmeter.log)?

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, there are no messages in the log when I click in the not responding area. You can follow the logs written in DEBUG mode in the attached "Recording using AuthorizationManager" file.

In the attache JMeter.log there are the log entries

Created attachment jmeter.log: JMeter.log

jmeter.log ```` ########## Click on Thread Group: 2020-12-15 13:05:06,840 DEBUG o.a.j.g.t.JMeterTreeListener: value changed, updating currentPath 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Updating current node CSV Data Set Config 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Gui retrieved = TestBeanGUI:org.apache.jmeter.config.CSVDataSet 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.String: 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set filename= 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set fileEncoding= 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.String: 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set variableNames= 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.Boolean:false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set ignoreFirstLine=false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.String:, 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set delimiter=, 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.Boolean:false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set quotedData=false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.Boolean:true 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set recycle=true 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.WrapperEditor: ->java.lang.Boolean:false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set stopThread=false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.GenericTestBeanCustomizer: Set shareMode=shareMode.all 2020-12-15 13:05:06,844 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify property to null 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify filename to 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify fileEncoding to 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify variableNames to 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify ignoreFirstLine to false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify delimiter to , 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify quotedData to false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify recycle to true 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify stopThread to false 2020-12-15 13:05:06,844 DEBUG o.a.j.t.g.TestBeanGUI: Modify shareMode to shareMode.all 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Updating current node Thread Group 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,844 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:06,844 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:06,844 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,845 DEBUG o.a.j.g.GuiPackage: Updating gui to new node 2020-12-15 13:05:06,845 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,849 DEBUG o.a.j.g.GuiPackage: Updating current node Thread Group 2020-12-15 13:05:06,849 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,849 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:06,849 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:06,849 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:06,849 DEBUG o.a.j.g.GuiPackage: Updating gui to new node #### click on AuthorizationManager (on the text) -> nothing logged and nothing happens #### click on AuthorizationManager (on the right side of Text) 2020-12-15 13:05:23,654 DEBUG o.a.j.g.t.JMeterTreeListener: value changed, updating currentPath 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Updating current node Thread Group 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.threads.gui.ThreadGroupGui[Thread Group,0,0,987x503,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@278a40d3,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,659 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:23,659 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,659 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Updating current node HTTP Authorization Manager 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,659 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty 2020-12-15 13:05:23,659 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,659 DEBUG o.a.j.g.GuiPackage: Updating gui to new node 2020-12-15 13:05:23,659 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty 2020-12-15 13:05:23,660 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,660 DEBUG o.a.j.g.GuiPackage: Updating current node HTTP Authorization Manager 2020-12-15 13:05:23,660 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,660 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty 2020-12-15 13:05:23,660 DEBUG o.a.j.g.AbstractJMeterGuiComponent: setting element to enabled: true 2020-12-15 13:05:23,660 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.protocol.http.gui.AuthPanel[HTTP Authorization Manager,0,0,987x503,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1c534922,flags=9,maximumSize=,minimumSize=,preferredSize=] 2020-12-15 13:05:23,660 DEBUG o.a.j.g.GuiPackage: Updating gui to new node 2020-12-15 13:05:23,660 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty ````
asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): Hello, On what OS and Java version are you facing this ?

Could you attach the whole jmeter.log ? Thanks

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): java --version java 11.0.1 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

OS: Microsoft Windows 10 Enterprise 10.0.19041

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Created attachment jmeter.log: Full JMeter log

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, attached the Full Log

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): Hello, Thanks for your feedback ! As a workaround, can you confirm that if you switch to System LAF and restart JMeter, you don't face the problem ? Thanks

At team, I reported:

Regards Philippe

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, you are right. If I switch to any other LAF than Darklaf I don't face the problem. Even without restarting JMeter.

This workaround helps me a lot. Thanks!

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): Hello, Could you please make this test as I don't reproduce the issue in any of the OSes I have.

0) Switch back to Darklaf

1) Find the line 151 of jmeter.bat:

=> set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

3) Replace current value by:

=> set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m -Ddarklaf.treeRowPopup=true

3) Restart JMeter

4) test again

We'll provide a fix but I want to be sure we are on right track.

Thanks in advance for your feedback.

Regards

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello Philippe, I tested with with changing line 151 to set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m -Ddarklaf.treeRowPopup=true

unfortunately with no success. The issue still occures. I also tried with moving the line below the if (if not defined HEAP)

If you want me to check some other setting (e.g. use a differen JVM, other screenresolution than 3240x2160) just let me know.

Regards

asfimport commented 3 years ago

@FSchumacher (migrated from Bugzilla): I am curious, why you are using such an old version of JDK 11? Can you try a newer one? (I am still no able to reproduce the issue on my Windows test machine).

Are you using any third party plugins in your setup?

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello, I installed a new version of Java (15.0.1) and used also the Snapshot Version of JMeter with no additional Plugins.

Unfortunatly the issue still occures on my machine :(

Here the extract from JMeter.log from startup: 2020-12-17 19:42:10,494 INFO o.a.j.JMeter: Version 5.4.1-SNAPSHOT 53c6db8 2020-12-17 19:42:10,494 INFO o.a.j.JMeter: java.version=15.0.1 2020-12-17 19:42:10,494 INFO o.a.j.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM 2020-12-17 19:42:10,494 INFO o.a.j.JMeter: os.name=Windows 10 2020-12-17 19:42:10,495 INFO o.a.j.JMeter: os.arch=amd64 2020-12-17 19:42:10,495 INFO o.a.j.JMeter: os.version=10.0 2020-12-17 19:42:10,495 INFO o.a.j.JMeter: file.encoding=Cp1252

Regards

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): Hello again.

I tested again by setting a different screen resolution: 1920x1080 -> The issue disappeared, everything works fine!

setting back to screen resolution 3240x2160 -> The issue is back again.

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): Hello Dietmar, Did you test my proposal ?

Please set this:

-Ddarklaf.treeRowPopup=false

NO: -Ddarklaf.treeRowPopup=true

Thanks

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): (In reply to Dietmar Berchtold from comment 15)

Hello Philippe, I tested with with changing line 151 to set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m -Ddarklaf.treeRowPopup=true

unfortunately with no success. The issue still occures. I also tried with moving the line below the if (if not defined HEAP)

If you want me to check some other setting (e.g. use a differen JVM, other screenresolution than 3240x2160) just let me know.

Regards

Hello Dietmar, Sorry I missed this comment, I made a mistake in my comment, you need to set the property to false:

-Ddarklaf.treeRowPopup=false

Thanks

asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): An other test: leave setting of screenresolution to high 3240x2160

Text size 225% -> isssue occures Text size 200% -> issue does not occure.

see attached Screensettings

Created attachment 2020-12-17_20h21_07.png: Screensettings

Screensettings
asfimport commented 3 years ago

Dietmar Berchtold (migrated from Bugzilla): (In reply to Philippe Mouawad from comment 20)

(In reply to Dietmar Berchtold from comment 15) > Hello Philippe, > I tested with with changing line 151 to > set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m -Ddarklaf.treeRowPopup=true > > unfortunately with no success. The issue still occures. I also tried with > moving the line below the if (if not defined HEAP) > > If you want me to check some other setting (e.g. use a differen JVM, other > screenresolution than 3240x2160) just let me know. > > Regards

Hello Dietmar, Sorry I missed this comment, I made a mistake in my comment, you need to set the property to false:

-Ddarklaf.treeRowPopup=false

Thanks

YES with this setting it works correct. Also with the settings mentioned below about text size 225% versus 200%

So I can confirm your fix works.

Thanks a lot!

asfimport commented 3 years ago

@pmouawad (migrated from Bugzilla): This is an automated email from the ASF dual-hosted git repository.

pmouawad pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jmeter.git

The following commit(s) were added to refs/heads/master by this push: new 655de1a https://github.com/apache/jmeter/issues/5451 - Darklaf LAF: Selecting a Test element does not work under certain screen resolutions on Windows 655de1a is described below

commit 655de1a8aa60c560e214bde06e6ca694d8619d5f Author: pmouawad <p.mouawad@ubik-ingenierie.com> AuthorDate: Fri Dec 18 13:54:50 2020 +0100

https://github.com/apache/jmeter/issues/5451 - Darklaf LAF: Selecting a Test element does not work under
certain screen resolutions on Windows

.../src/main/java/org/apache/jmeter/gui/action/LookAndFeelCommand.java | 3 +++ xdocs/changes.xml | 2 ++ 2 files changed, 5 insertions(+)