Giter Site home page Giter Site logo

blazemeter / correlationrecorder Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 13.0 17.52 MB

A repository for the Auto Correlation Recorder Plugin for JMeter

Home Page: https://blazemeter.github.io/CorrelationRecorder/

License: Apache License 2.0

Java 70.85% Groovy 0.16% HTML 29.00%

correlationrecorder's People

Contributors

3dgiordano avatar baraujo25 avatar clauguinovart avatar dependabot[bot] avatar diego-ferrand avatar eliran-mesika avatar ricardopoleo avatar rpoleo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

correlationrecorder's Issues

getting "Cannot invoke "org.apache.jmeter.gui.JMeterGUIComponent.clearGui()" because "guicomp" is null" issue

Describe the bug

Cannot invoke "org.apache.jmeter.gui.JMeterGUIComponent.clearGui()" because "guicomp" is null while launching Bjm Correlation recorder plugin template in Jmeter

A clear and concise description of what the bug is.

Launch Jmeter
Go to the templates Icon after installing the bzm correlation recorder plugin
Select the Bzm correlation recorder template and click on create button.
We are getting "Cannot invoke "org.apache.jmeter.gui.JMeterGUIComponent.clearGui()" because "guicomp" is null issue and unable to Launch the template in Macbook Air M2.

Environment
macbook Air M2
Java 21
Jmeter Version 5.6.3

Let us know in which versions of these tools the error occurs:

  • JMeter
  • Correlation Recorder
  • Plugin Manager (if applicable)
  • Protocol version (if apply, eg: Siebel CRM IP17 & IP18)

To Reproduce

Steps to reproduce the bug:

  1. Launch Jmeter in Macbook
  2. Click on the Book icon (Templates)
  3. Select bzm correlation recorder template from the drop down and click create button
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Complementary information

To have a faster and accurate response to your issue, please share:

  • The JTL for the recording and the replay (if needed)
  • The configuration of the Correlation Rules/Templates used (picture, test plan, or JSON file)

In case of sharing the JTL, please make sure you configure it as shown in the docs/JTLRecordingConfiguration.png file

Additional context
Screenshot 2024-05-10 at 21 19 43

Add any other context about the problem here.

Error occured while copying node

After recording the business flow using the Correlation Recorder plugin, when we cut the any recorded element, JMeter is throwing below error.

Version: JMeter 5.3

image

Cannot load templates - 5.4.3

Hi, I added the Correlation Recorder through plugin manager, using JMeter 5.4.3 on Windows 10.
It is possible to add a new Group and create new rules and save but I am unable to load any templates.
Eg when I clear templates and attempt to reload with 'Load Template', nothing comes up.
Also, although I can save a template, when I try to click save again, the saving template appears and requires all information to be retyped.

Error logs are at bottom of post.

**Environment:
Windows 10
Networked device behind corporate proxy
JMeter version 5.4.3
bzm-correlation-recorder v 1.2.2 updated today

Steps to reproduce the bug:

  1. Open JMeter through command line with parameters to work with corporate proxy.
  2. Open existing jmx file or create new plan from template
  3. Navigate to bzm - Correlation Recorder
  4. Click 'Correlation Rules' tab
  5. Click 'Load Template'

Observe that nothing happens
Observe that new entry appears in error logs, see bottom of this post
Note that json file is saved here: C:\Work\JMeter\apache-jmeter-5.4.3\correlation-templates\DanB_Template-1.0-template.json

Expected behavior

Once saved, it should be possible to load templates in existing or new test plans.

Complementary information

C:\Work\JMeter\apache-jmeter-5.4.3\correlation-templates\DanB_Template-1.0-template.json contains:

{
  "id" : "DanB_Template",
  "description" : "First draft of template for PoC",
  "version" : "1.0",
  "author" : "DanB",
  "url" : "",
  "components" : "",
  "responseFilters" : "",
  "groups" : [ {
    "id" : "Group-1",
    "rules" : [ {
      "referenceName" : "state",
      "correlationExtractor" : {
        "type" : "com.blazemeter.jmeter.correlation.core.extractors.RegexCorrelationExtractor",
        "multiValued" : true,
        "regex" : "state=(.*?)\\\\"
      },
      "correlationReplacement" : {
        "type" : "com.blazemeter.jmeter.correlation.core.replacements.RegexCorrelationReplacement",
        "regex" : "state=(.*?)\\\\"
      },
      "enabled" : true
    }, {
      "referenceName" : "nonce",
      "correlationExtractor" : {
        "type" : "com.blazemeter.jmeter.correlation.core.extractors.RegexCorrelationExtractor",
        "multiValued" : true,
        "regex" : "nonce=(.*?)\\\\"
      },
      "correlationReplacement" : {
        "type" : "com.blazemeter.jmeter.correlation.core.replacements.RegexCorrelationReplacement",
        "regex" : "nonce=(.*?)\\\\\""
      },
      "enabled" : true
    } ],
    "enable" : true
  } ],
  "dependencies" : [ ],
  "repositoryId" : "local",
  "changes" : "first draft",
  "installed" : false
}

Additional context

2022-12-07 14:51:34,430 WARN c.b.j.c.c.t.LocalCorrelationTemplatesRepositoriesRegistry: There was an issue trying to read the file central-repository.json.
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
 at [Source: (File); line: 1, column: 0]
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4686) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4584) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3431) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.blazemeter.jmeter.correlation.core.templates.LocalConfiguration.readTemplatesReferences(LocalConfiguration.java:132) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.core.templates.LocalCorrelationTemplatesRepositoriesRegistry.readTemplatesReferences(LocalCorrelationTemplatesRepositoriesRegistry.java:124) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.core.templates.LocalCorrelationTemplatesRepositoriesRegistry.lambda$getRepositories$0(LocalCorrelationTemplatesRepositoriesRegistry.java:111) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at com.blazemeter.jmeter.correlation.core.templates.LocalCorrelationTemplatesRepositoriesRegistry.getRepositories(LocalCorrelationTemplatesRepositoriesRegistry.java:100) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.core.templates.CorrelationTemplatesRepositoriesConfiguration.getCorrelationRepositories(CorrelationTemplatesRepositoriesConfiguration.java:51) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.CorrelationProxyControl.getCorrelationRepositories(CorrelationProxyControl.java:613) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.CorrelationProxyControlGui.getCorrelationRepositories(CorrelationProxyControlGui.java:184) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.updateTemplatesList(CorrelationTemplatesFrame.java:321) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.prepareInfoPanel(CorrelationTemplatesFrame.java:134) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.<init>(CorrelationTemplatesFrame.java:125) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.RulesContainer.actionPerformed(RulesContainer.java:131) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?]
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) ~[?:?]
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
	at java.awt.Component.processMouseEvent(Component.java:6626) ~[?:?]
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3389) ~[?:?]
	at java.awt.Component.processEvent(Component.java:6391) ~[?:?]
	at java.awt.Container.processEvent(Container.java:2266) ~[?:?]
	at java.awt.Component.dispatchEventImpl(Component.java:5001) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?]
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?]
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) ~[?:?]
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?]
	at java.awt.Window.dispatchEventImpl(Window.java:2780) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:746) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:744) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) [?:?]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:743) [?:?]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
2022-12-07 14:51:34,451 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[AWT-EventQueue-0,6,main]
java.lang.reflect.InaccessibleObjectException: Unable to make field private int java.awt.image.BufferedImage.imageType accessible: module java.desktop does not "opens java.awt.image" to unnamed module @501edcf1
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
	at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
	at java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[?:?]
	at java.lang.reflect.Field.setAccessible(Field.java:172) ~[?:?]
	at com.fasterxml.jackson.databind.util.ClassUtil.checkAndFixAccess(ClassUtil.java:987) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.fixAccess(FieldProperty.java:104) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBuilder._fixAccess(BeanDeserializerBuilder.java:522) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBuilder.build(BeanDeserializerBuilder.java:373) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:293) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:150) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:414) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:581) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:524) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:293) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:591) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4731) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4592) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3411) ~[jackson-databind-2.12.0.jar:2.12.0]
	at com.blazemeter.jmeter.correlation.core.templates.LocalConfiguration.readValue(LocalConfiguration.java:127) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.core.templates.LocalCorrelationTemplatesRepositoriesRegistry.lambda$getCorrelationTemplatesByRepositoryId$3(LocalCorrelationTemplatesRepositoriesRegistry.java:190) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at com.blazemeter.jmeter.correlation.core.templates.LocalCorrelationTemplatesRepositoriesRegistry.getCorrelationTemplatesByRepositoryId(LocalCorrelationTemplatesRepositoriesRegistry.java:188) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.core.templates.CorrelationTemplatesRepositoriesConfiguration.getCorrelationTemplatesByRepositoryName(CorrelationTemplatesRepositoriesConfiguration.java:55) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.CorrelationProxyControl.getCorrelationTemplatesByRepositoryName(CorrelationProxyControl.java:624) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.CorrelationProxyControlGui.getCorrelationTemplatesByRepositoryName(CorrelationProxyControlGui.java:194) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.lambda$updateTemplatesList$3(CorrelationTemplatesFrame.java:323) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.updateTemplatesList(CorrelationTemplatesFrame.java:321) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.prepareInfoPanel(CorrelationTemplatesFrame.java:134) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.templates.CorrelationTemplatesFrame.<init>(CorrelationTemplatesFrame.java:125) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at com.blazemeter.jmeter.correlation.gui.RulesContainer.actionPerformed(RulesContainer.java:131) ~[jmeter-bzm-correlation-recorder-1.2.2.jar:?]
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?]
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) ~[?:?]
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
	at java.awt.Component.processMouseEvent(Component.java:6626) ~[?:?]
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3389) ~[?:?]
	at java.awt.Component.processEvent(Component.java:6391) ~[?:?]
	at java.awt.Container.processEvent(Container.java:2266) ~[?:?]
	at java.awt.Component.dispatchEventImpl(Component.java:5001) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?]
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?]
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) ~[?:?]
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?]
	at java.awt.Window.dispatchEventImpl(Window.java:2780) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4833) ~[?:?]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:716) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:746) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:744) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:743) ~[?:?]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]

XML recording problems

When I record xml code and I set 1 correlation rule WITH a Correlation Replacement all the XML code is record as:
<action name"Rule" rulename"RuleName"

Without the Correlation replacement, the XML code is record as:
<action name="Rule" rulename="RuleName"

and that is correct. So in the example the equal sign "=" was deleted. So is it a bug or do I sometimes wrong?

Siebel IP 20 - "Session Warning Message" every time

I am trying to register a simple interaction towards siebel version IP 20, in which I log in and search for a customer and request his details. Everything seems to work but when I replay the registration to the customer detail request I always get an error page as a response that says: "Session Warning Message", which warns me of the existence of another session open for the same user. I verified that the request that goes in error is identical to the previous one, which instead receives a correct answer, has the same parameters (apart from the frame parameter) and the same JsessionId present in the cookie. Is the plugin compatible with Siebel IP version 20? I haven't changed or added any correlation rules this scenario shouldn't work out of the box? Thanks so much for your effort.

Zoom In/Out UI

After adding rules and if the user zooming in/out, the first row is getting invisible partially. Please check the below screenshot.

image

Correlation replacements not applied to recorded script using auto-correlation

RegExp extractors are created but only a portion of those are applied in the script. Seeing many errors in the log stating:

ERROR c.b.j.c.c.a.ElementsModification: The source 'JSON' is not supported.Replacement's value 'y5vGmGtGq3Y5V0VFNdtybxK0V1wDXZZT7m5WCVaIg/k=' in the suggestion ReplacementSuggestion{replacementSuggestion=RegexCorrelationReplacement{, regex='', replacementString='', ignoreValue=false},...
  • JMeter = 5.5
  • Correlation Recorder = 2.0.3
  • Plugin Manager (if applicable) = 1.9
  • Protocol version (if apply, eg: Siebel CRM IP17 & IP18) = Mendix

To Reproduce

  1. Create recording on a Mendix application using correlation recorder template in JMeter
  2. Choose to auto-correlate everything found.
  3. Observe that most regular expressions created do not get used in resulting script.
  4. See error from above description

Expected behavior

No errors occur and correlations are applied to script.

HTTP 2 recording with correlation recorder

Describe the feature

Currently, near 50% of top 1.000.000 websites uses HTTP/2 protocol and 70% of top 1000 websites also relies on this protocol (ref).
It would be nice if this Correlation Recorder could record http2 scripts, since it will unlock its usage on webapps running on modern web servers.

User variable not resolved

I have defined a user variable PROJECT_HOME in the "User Defined Variables" element.

The PROJECT_HOME variable contains this code:

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}

After that, I reuse it in the "CSV Data Set Config" element, in the filename as follow:

${__env(DATA_CONFIG,,${__eval(${PROJECT_HOME})})}/Credentials.csv

With the "HTTP(S) Test Script Recorder" the resolution of the variable PROJETC_HOME is resolved correctly, as follow:
2021-12-07 10:20:39,175 INFO o.a.j.s.FileServer: Close: D:\Projets\Load-Tests\Auto-Correlation/Credentials.csv

But with this plugin I have the following issue:
2021-12-07 10:09:08,562 INFO o.a.j.s.FileServer: Stored: ${PROJECT_HOME}/Credentials.csv

Environment

Windows 10

  • JMeter version 5.4.1
  • Correlation Recorder: latest (1.2.1)
  • Plugin Manager (if applicable)
  • Protocol version (if apply, eg: Siebel CRM IP17 & IP18)

Step to Reproduce

  1. Define the PROJECT_HOME variable as
    ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)} in the config element "User Defined Variable".
  2. In the config element "CSV Data Set Config" set the "Filename" as ${__env(DATA_CONFIG,,${__eval(${PROJECT_HOME})})}/Credentials.csv
  3. Define a simple scenario
  4. Click on Start

Expected behaviour

I expected that the ${PROJECT_HOME} is resolved as D:\Projets\Load-Tests\Auto-Correlation instead of remaining as ${PROJECT_HOME}

Complementary information

none

Additional context

none

Add Automatic Correlation based on assertions

Describe the feature

Currently, the automatic correlation recorder autodetects correlations based on http code status error.
A lot of applications, do not show 4xx or 5xx status code to the user, but instead sends 2xx status code with an error description in the response. This scenarios make the plugin useless.

It would be very useful to provide auto-correlation capabilities based on user defined assertions, so that applications that do not send error status code to the users can be correlated also.

Some HTTP requests are missing when recorded with correlation recorder plugin

When recording the scenario using the bzm correlation plugin, some of the main http requests are not captured. Because of this validation could not be done. We verified the application without using the plugin, all http requests are capturing. Also few requests are capturing out of order with plugin. For example, http-1,http-2,http-3, http-4,http-5 is the expected order. But recorded order is http-1,http-5,http-3,http-4,http-2.
What happens here is http-5 request's values depends on http2's response. Due to the unexpected order, auto correlation behaviour of the plugin is affecting.

Checkbox/Toggle to enable/disable rules

Can we get a checkbox or toggle on/off rules in the Correlation Rules tab? This will allow users to easily enable/disable rules instead of deleting them. Thanks!

image

Requests are delayed while recording

While recording the scenario with bzm correlation recorder plugin, requests are not captured in expected order.
For example,
Expected order is:
request1
request2
request3(values passed in this request depends on the response of request1)

Order obtained is:
request3(values passed in this request depends on the response of request1)
request2
request1

Since request1 is captured only after request3, autocorrelation is not working at this point.
But when used with HTTPS Test script recorder, request are captured in expected order.

It would be time saving if this issue is resolved. Kindly do the needful.

An error occurs when using local templates with Correlation's Wizard.

Describe the bug

2024-04-26 18:32:51,108 INFO c.b.j.c.c.a.JMeterElementUtils: Test Plan's Snapshot saved to D:\apache-jmeter-5.4.3\bin\Recording\snapshot-1714127571086.jmx
2024-04-26 18:32:51,109 INFO c.b.j.c.c.a.CorrelationHistory: Correlation History saved to D:\apache-jmeter-5.4.3\bin\History\history-1714119758788.json
2024-04-26 18:32:52,006 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[AWT-EventQueue-0,6,main]
java.lang.IndexOutOfBoundsException: Index 138 out of bounds for length 138
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[?:?]
at java.util.Objects.checkIndex(Objects.java:372) ~[?:?]
at java.util.ArrayList.get(ArrayList.java:459) ~[?:?]
at com.blazemeter.jmeter.correlation.core.analysis.Analysis.run(Analysis.java:98) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.core.analysis.Analysis.startAnalysisWithGroupRules(Analysis.java:171) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.core.analysis.Analysis.run(Analysis.java:73) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.gui.analysis.CorrelationTemplatesSelectionPanel.runNonCorrelatedAnalysis(CorrelationTemplatesSelectionPanel.java:426) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.gui.automatic.CorrelationWizard.lambda$startNonCorrelatedAnalysis$2(CorrelationWizard.java:107) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.gui.analysis.CorrelationTemplatesSelectionPanel.onContinue(CorrelationTemplatesSelectionPanel.java:379) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.gui.analysis.CorrelationTemplatesSelectionPanel.validateAndContinue(CorrelationTemplatesSelectionPanel.java:325) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at com.blazemeter.jmeter.correlation.gui.analysis.CorrelationTemplatesSelectionPanel.actionPerformed(CorrelationTemplatesSelectionPanel.java:280) ~[jmeter-bzm-correlation-recorder-2.4.jar:?]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967) ~[?:?]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) ~[?:?]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297) ~[?:?]
at java.awt.Component.processMouseEvent(Component.java:6635) ~[?:?]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3342) ~[?:?]
at java.awt.Component.processEvent(Component.java:6400) ~[?:?]
at java.awt.Container.processEvent(Container.java:2263) ~[?:?]
at java.awt.Component.dispatchEventImpl(Component.java:5011) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2321) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4843) ~[?:?]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) ~[?:?]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547) ~[?:?]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) ~[?:?]
at java.awt.Container.dispatchEventImpl(Container.java:2307) ~[?:?]
at java.awt.Window.dispatchEventImpl(Window.java:2772) ~[?:?]
at java.awt.Component.dispatchEvent(Component.java:4843) ~[?:?]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
at java.awt.EventQueue$5.run(EventQueue.java:743) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[?:?]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:742) ~[?:?]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]

Environment

Let us know in which versions of these tools the error occurs:

  • JMeter 5.4.3
  • Correlation Recorder 2.4
  • Plugin Manager (if applicable)
  • Protocol version (if apply, eg: Siebel CRM IP17 & IP18)

To Reproduce

Steps to reproduce the bug:

When I use Correlation's Wizard -> Existing Correlation Templates -> select Local Templates -> click Continue, the following error occurs.

Expected behavior

How can I properly link to local templates, and can I remove the OPTIONS Method requests during plugin recording?

Complementary information

To have a faster and accurate response to your issue, please share:

  • The JTL for the recording and the replay (if needed)
  • The configuration of the Correlation Rules/Templates used (picture, test plan, or JSON file)
    20240426185658

In case of sharing the JTL, please make sure you configure it as shown in the docs/JTLRecordingConfiguration.png file

Additional context
Add any other context about the problem here.

Blazemeter correlation recorder for mendix platform

I added bzm-correlation recorder plugin in Jmeter(version 5.2.1). As per the documentaion, I gave correlation rules and captured the scenario.

Result I got:
As expected, regular expression extractor is automatically added to the request which matches the regular expression given in correlation rule.
But the dynamic value in the subsequent requests i can't replace properly due to mendix application will have the requests like below:

{"action":"executemicroflow","params":{"name":"JoinForm.IVK_JoinForm_Next_FinancialConfirmation","params":{"Agent":{"guid":"49821070877903922"}},"validationGuids":["103582791429984673","49821070877903922","74027918875004238","4503599627474506","55732045388813898","2533274790499914"]},"changes":{"23925373020765797":{"Duration":{"value":"0.31065111"}},"97671816918664942":{"Feedback_FindSponsor":{"value":""}}},"objects":[],"profiledata":{"1614601854093-117":1069}}

And also its creating multiple extractor for single value as I attached the screenshot here for your reference.

Kindly guide me to solve this issue. Thanks in advance.
image

EOF exception while recording D365 Fno using the bzm-correlation recorder template

I am getting below EOF exception while recording D365 Fno Application using the BZM correlation recorder template.

java.io.EOFException at java.base/java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:279) at java.base/java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:269) at java.base/java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:175) at java.base/java.util.zip.GZIPInputStream.(GZIPInputStream.java:79) at java.base/java.util.zip.GZIPInputStream.(GZIPInputStream.java:91) at org.apache.jmeter.protocol.http.sampler.hc.LaxGZIPInputStream.(LaxGZIPInputStream.java:42) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.lambda$static$0(HTTPHC4Impl.java:205) at org.apache.http.client.entity.LazyDecompressingInputStream.initWrapper(LazyDecompressingInputStream.java:51) at org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:63) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.readResponse(HTTPSamplerBase.java:1950) at org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.readResponse(HTTPAbstractImpl.java:475) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:678) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1311) at org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:251) at com.blazemeter.jmeter.correlation.core.proxy.CorrelationProxy.run(CorrelationProxy.java:57)

Let us know in which versions of these tools the error occurs:

  • JMeter: 5.6.3
  • Correlation Recorder: BZM-Correlation-Recorder Plugin: 2.2.1
  • Plugin Manager (if applicable) : 1.0
  • Protocol version (if apply, eg: Siebel CRM IP17 & IP18)

To Reproduce

Steps to reproduce the bug:

  1. Click on BZM-Correlation-Recorder template and click start
  2. Go to firefox and launch D365 F&O url.
  3. See error

Regarding Blazemeter-Correlation Recorder Plugin

I added bzm-correlation recorder plugin in Jmeter(version 5.1.1). As per the documentaion, I gave correlation rules and captured the scenario.
Result I got:
As expected, regular expression extractor is automatically added to the request which matches the regular expression given in correlation rule.
But the dynamic value in the subsequent request is not replaced by reference variable which has to be replaced automatically.

Kindly guide me to solve this issue. Thanks in advance.

Requests are delayed while recording

Describe the bug
While recording the scenario with bzm correlation recorder plugin, requests are not captured in the expected order.
For example:

The expected order is:

  1. request1
  2. request2
  3. request3(values passed in this request depends on the response of request1)

Order obtained is:

  1. request3(values passed in this request depends on the response of request1)
  2. request2
  3. request1

Since request1 is captured only after request3, the autocorrelation is not working at this point.
But when used with HTTPS Test script recorder, request are captured in the expected order.

It would be time-saving if this issue is resolved. Kindly do the needful.

Environment

Let us know in which versions of these tools the error occurs:

  • JMeter's version: v5.4.1
  • Correlation Recorder's version: v1.2
  • Plugin Manager's version: v1.6
  • Protocol Information: Mendix Platform

Expected behavior

The expected order is:

  1. request1
  2. request2
  3. request3(values passed in this request depends on the response of request1)

Please refer to previous occurrence of this same issue, in ticket "Requests are delayed while recording #22"

Group Number Validation Error

If we enter 0 in Group Number as shown below, it is throwing the below error in the log viewer. Instead, Group Number field must accept greater than 0 or possible validation rules.

image

java.lang.NullPointerException: null
	at com.blazemeter.jmeter.correlation.core.RegexMatcher.findMatch(RegexMatcher.java:31) ~[jmeter-bzm-correlation-recorder-1.0.jar:?]
	at com.blazemeter.jmeter.correlation.core.extractors.RegexCorrelationExtractor.process(RegexCorrelationExtractor.java:136) ~[jmeter-bzm-correlation-recorder-1.0.jar:?]
	at com.blazemeter.jmeter.correlation.core.CorrelationRule.addExtractors(CorrelationRule.java:72) ~[jmeter-bzm-correlation-recorder-1.0.jar:?]
	at com.blazemeter.jmeter.correlation.core.CorrelationEngine.lambda$process$6(CorrelationEngine.java:75) ~[jmeter-bzm-correlation-recorder-1.0.jar:?]

Disabling Correlation Rules leads to duplicating and enabling again

When we disable any rules in the Correlation Rules, which leads to duplicating them.

Steps to reproduce:

  1. Create couple of rules in the Correlation Rules
  2. Disable them
  3. Click on any other element in your test plan
  4. Click on Correlation Recorder element again
  5. You can see the rules got duplicated and enabled again

Recording with JMeter 5.5 version is broke

Version 5.4.3 of JMeter has been working great with the Correlation recorder version 1.2.
Moving to JMeter 5.5 broke all the templates, which is fine but recording the traffic while using the correlation recorder is broke. The script will sometimes start to show up in the Thread Group and then stops part way through a recording or doesn't build out at all.

The View Results Tree of the recorder displays all the necessary traffic to make the script.

Attempting to record traffic with or without recording rules results in same behavior.
Same with and without any requests filtering.

I'm on a Windows 10 developers laptop.

I've attempted to use the version 1.0 of the Correlation recorder with version 5.5 of JMeter and that doesn't work either. JMeters built in recorder works every time with no issues.

Our Entire team has moved to using the latest version of JMeter; are there any plans to update the Correlation Recorder?
Ping_ViewState_Rules-1-snapshot
ViewResultsTree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.