Skip to content

Commit

Permalink
Merge pull request #83 from Blazemeter/RELEASE_v3.0
Browse files Browse the repository at this point in the history
Release v3.0
  • Loading branch information
Baraujo25 authored Oct 1, 2024
2 parents de76670 + 76e24ee commit f438e62
Show file tree
Hide file tree
Showing 84 changed files with 2,190 additions and 3,763 deletions.
1 change: 0 additions & 1 deletion docs/src/.vuepress/public/examples/CustomContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ public void reset() {
* This method is always called when the {@link CorrelationEngine} is processing the responses
* from the server.
*
* Look for the implementation on {@link ../src/main/java/com/blazemeter/jmeter/correlation/siebel/SiebelContext}
*/
@Override
public void update(SampleResult sampleResult) {
Expand Down
78 changes: 0 additions & 78 deletions docs/src/contributing/assets/classDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -308,80 +308,11 @@ title __Correlations Recorder's Class Diagram__\n
class com.blazemeter.jmeter.correlation.gui.TestPlanTemplatesRepository {
- rootFolder : String
+ TestPlanTemplatesRepository()
+ addSiebelCorrelationTemplate()
+ addSiebelTemplate()
+ setRootFolder()
}

}

namespace siebel {
class com.blazemeter.jmeter.correlation.siebel.SiebelArrayFunction {
{static} - DESC : List<String>
{static} - KEY : String
}

class com.blazemeter.jmeter.correlation.siebel.SiebelContext {
- bcis : Map<String, BCI>
- counter : Integer
- paramRowFields : Map<String, Field>
- prefixId : int
- rowVars : Map<String, String>
+ update()
}

class com.blazemeter.jmeter.correlation.siebel.SiebelContext.BCI {
- fields : Map<Integer, Field>
- addField()
- getField()
}
class com.blazemeter.jmeter.correlation.siebel.SiebelContext.Field {
{static} - TELEPHONE_TYPE : int
- id : int
- position : int
- type : int
+ getIgnoredCharsRegex()
+ getPosition()
- Field()
}
class com.blazemeter.jmeter.correlation.siebel.SiebelCounterCorrelationReplacement {
+ SiebelCounterCorrelationReplacement()
+ getSupportedContext()
+ process()
+ toString()
+ update()
+ updateTestElem()
- createPreProcessor()
}
class com.blazemeter.jmeter.correlation.siebel.SiebelRowCorrelationExtractor {
+ SiebelRowCorrelationExtractor()
+ getParams()
+ getParamsDefinition()
+ getSupportedContext()
+ process()
+ update()
+ updateTestElem()
- buildArrayParserPostProcessor()
}
class com.blazemeter.jmeter.correlation.siebel.SiebelRowIdCorrelationReplacement {
+ getSupportedContext()
+ update()
+ updateTestElem()
# replaceWithRegex()
}
class com.blazemeter.jmeter.correlation.siebel.SiebelRowParamsCorrelationReplacement {
- rowVarPrefix : String
+ SiebelRowParamsCorrelationReplacement()
+ getParams()
+ getParamsDefinition()
+ getSupportedContext()
+ process()
+ setParams()
+ update()
+ updateTestElem()
# replaceWithRegex()
}
}

}

Expand Down Expand Up @@ -463,15 +394,6 @@ title __Correlations Recorder's Class Diagram__\n
com.blazemeter.jmeter.correlation.gui.RulesContainer o-- com.blazemeter.jmeter.correlation.gui.ComponentContainer : componentContainer
com.blazemeter.jmeter.correlation.gui.RulesContainer o-- com.blazemeter.jmeter.correlation.core.CorrelationComponentsRegistry : componentsRepository

com.blazemeter.jmeter.correlation.siebel.SiebelArrayFunction -up-|> org.apache.jmeter.functions.AbstractFunction
com.blazemeter.jmeter.correlation.siebel.SiebelContext .up.|> com.blazemeter.jmeter.correlation.core.CorrelationContext
com.blazemeter.jmeter.correlation.siebel.SiebelContext +-down- com.blazemeter.jmeter.correlation.siebel.SiebelContext.BCI
com.blazemeter.jmeter.correlation.siebel.SiebelContext +-down- com.blazemeter.jmeter.correlation.siebel.SiebelContext.Field
com.blazemeter.jmeter.correlation.siebel.SiebelCounterCorrelationReplacement -up-|> com.blazemeter.jmeter.correlation.core.replacements.RegexCorrelationReplacement
com.blazemeter.jmeter.correlation.siebel.SiebelRowCorrelationExtractor -up-|> com.blazemeter.jmeter.correlation.core.extractors.RegexCorrelationExtractor
com.blazemeter.jmeter.correlation.siebel.SiebelRowIdCorrelationReplacement -up-|> com.blazemeter.jmeter.correlation.core.replacements.RegexCorrelationReplacement
com.blazemeter.jmeter.correlation.siebel.SiebelRowParamsCorrelationReplacement -up-|> com.blazemeter.jmeter.correlation.core.replacements.RegexCorrelationReplacement

com.blazemeter.jmeter.correlation.CorrelationProxyControl .up.|> com.blazemeter.jmeter.correlation.core.templates.CorrelationTemplatesRegistryHandler
com.blazemeter.jmeter.correlation.CorrelationProxyControl .up.|> com.blazemeter.jmeter.correlation.core.templates.CorrelationTemplatesRepositoriesRegistryHandler
com.blazemeter.jmeter.correlation.CorrelationProxyControl -up-|> org.apache.jmeter.protocol.http.proxy.ProxyControl
Expand Down
2 changes: 1 addition & 1 deletion docs/src/guide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ easier to maintain.
## Key Features

- Automated correlation detection and suggestions for faster and more accurate test script creation
- Preloaded SIEBEL templates for convenience and faster test script creation
- Access to SIEBEL templates for convenience and faster test script creation
- Auto install, download and update repositories for a convenient and hassle-free team collaboration
- Easy customization options for efficient test script creation and increased productivity
- Customizable correlations to match your specific testing needs and requirements
Expand Down
Binary file not shown.
47 changes: 1 addition & 46 deletions docs/src/guide/before-recording.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,39 +268,6 @@ The IETF group in charge of creating Internet standards in February 2024 complet
You can consult the RFC documentation in case you require more details about JSONPath
https://datatracker.ietf.org/doc/rfc9535/

**SiebelRow**

This Correlation Extractor comes in the already installed Siebel's Template. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.

![Siebel Row Correlation Extractor](./assets/siebel-row-correlation-extractor.png)

The Siebel Row Correlation Extractor works in a similar way like the previously mentioned RegEx, with the main differences that:

- This applies a "Siebel Star Array strings" parsing function over the matched regex and store the parsed values as variables.
- Regarding the Parameters expected, Siebel Row Correlation Extractor uses all but the _Match Number_, since it parses every match it founds.
- Last, but not least, if the Regex its matched, a JSR223PostProcessor will be added to the sampler.

_For a better understanding, lets do an example_

Let's say that the String we want to extract and, therefore, apply this extracting and parsing function, its

`8\*testUser12\*testPassword6\*VRId-0`

The plugin will search for the number before an occurrence of "\*", uses that value as the length of the number of characters to store, and then repeats if there is another occurrence of "\*".

If the Reference Variable is set to _VAR_, the split strings returned will be set in variables names like ${VAR_1}, ${VAR_2}, ${VAR_3} etc. and, the count of variables is returned as ${VAR_n}.

The stored values for that string, at the end, will be:

- VAR_n=3
- VAR_1=testUser
- VAR_2=testPassword
- VAR_3=VRId-0

### Star Array Correlation

When the server returns variables using a star array, the plugin will parse the array and generate a new variable for each of the parameters, using the specified prefix name.

## Variable Generation

The creation of JMeter variables for later usage is one of the pillars of this plugin. Therefore, this section is specially dedicated to understand and review all the possible scenarios.
Expand Down Expand Up @@ -428,7 +395,7 @@ Now that we have a basic idea of a replacement, lets explain the most complex an

## List of Correlation Replacements

All the Correlation Replacements mentioned below comes either installed by default in the plugin, or as a part of the preloaded Siebel Template. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.
All the Correlation Replacements mentioned below are installed by default in the plugin. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.

In case none of the following Replacements fits the desired behavior your application requires, to correlate the dynamic variables that it might have, feel free to read the [Customizing your one extensions](CUSTOM_EXTENSIONS.md) section that we have prepared for you.

Expand All @@ -447,15 +414,3 @@ Similarly to the _JSON Correlation Extractor_, this one also receives a JSONPath
For examples of using JSONPath expressions, refer to the _JSON Correlation Extractor_ documentation.

The logic behind **Replacement string** and **Ignore value** is the same as _Regex Correlation Replacement_. Go to the documentation related to **Variable Replacement** for usage examples.

**Siebel Counter**

This Correlation Replacement replaced the matched regex with a counter that holds the value of each time it has matched on the moment the replacement occurs.

**Siebel Row Id**

This replacement adds _\_rowId_ to the Reference Variable name before each replacement, and search the value of the regex on rows of the Siebel Context. After this, it behaves like a regular RegEx Replacement using the Siebel Context

**SiebelRowParams**

Similarly to the rest of the Correlation that involves Regex, this Replacement will receive a Regular Expression as param, its going to search for the first occurrence of the first group of (), inside the Siebel Context values, extracted previously by the SiebelRow's CorrelationExtractor, and replace the respective value following the formula `RefVar` + \_ + `RowNumber`.
45 changes: 1 addition & 44 deletions docs/src/guide/correlation-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,38 +239,6 @@ The IETF group in charge of creating Internet standards in February 2024 complet
You can consult the RFC documentation in case you require more details about JSONPath
https://datatracker.ietf.org/doc/rfc9535/

**SiebelRow**

This Correlation Extractor comes in the already installed Siebel's Template. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.

![Siebel Row Correlation Extractor](./assets/siebel-row-correlation-extractor.png)

The Siebel Row Correlation Extractor works in a similar way like the previously mentioned RegEx, with the main differences that:

- This applies a "Siebel Star Array strings" parsing function over the matched regex and store the parsed values as variables.
- Regarding the Parameters expected, Siebel Row Correlation Extractor uses all but the _Match Number_, since it parses every match it founds.
- Last, but not least, if the Regex its matched, a JSR223PostProcessor will be added to the sampler.

_For a better understanding, lets do an example_

Let's say that the String we want to extract and, therefore, apply this extracting and parsing function, its

`8\*testUser12\*testPassword6\*VRId-0`

The plugin will search for the number before an occurrence of "\*", uses that value as the length of the number of characters to store, and then repeats if there is another occurrence of "\*".

If the Reference Variable is set to _VAR_, the split strings returned will be set in variables names like ${VAR_1}, ${VAR_2}, ${VAR_3} etc. and, the count of variables is returned as ${VAR_n}.

The stored values for that string, at the end, will be:

- VAR_n=3
- VAR_1=testUser
- VAR_2=testPassword
- VAR_3=VRId-0

### Star Array Correlation

When the server returns variables using a star array, the plugin will parse the array and generate a new variable for each of the parameters, using the specified prefix name.

## Variable Generation

Expand Down Expand Up @@ -399,7 +367,7 @@ Now that we have a basic idea of a replacement, lets explain the most complex an

## List of Correlation Replacements

All the Correlation Replacements mentioned below comes either installed by default in the plugin, or as a part of the preloaded Siebel Template. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.
All the Correlation Replacements mentioned below are installed by default in the plugin. To know more about how to load and save Correlation Rules Templates, please refer to the [Saving and Loading Rules](#saving-and-loading-rules) section, for further details about it.

In case none of the following Replacements fits the desired behavior your application requires, to correlate the dynamic variables that it might have, feel free to read the [Customizing your one extensions](custom-extensions) section that we have prepared for you.

Expand All @@ -419,14 +387,3 @@ For examples of using JSONPath expressions, refer to the _JSON Correlation Extra

The logic behind **Replacement string** and **Ignore value** is the same as _Regex Correlation Replacement_. Go to the documentation related to **Variable Replacement** for usage examples.

**Siebel Counter**

This Correlation Replacement replaced the matched regex with a counter that holds the value of each time it has matched on the moment the replacement occurs.

**Siebel Row Id**

This replacement adds _\_rowId_ to the Reference Variable name before each replacement, and search the value of the regex on rows of the Siebel Context. After this, it behaves like a regular RegEx Replacement using the Siebel Context

**SiebelRowParams**

Similarly to the rest of the Correlation that involves Regex, this Replacement will receive a Regular Expression as param, its going to search for the first occurrence of the first group of (), inside the Siebel Context values, extracted previously by the SiebelRow's CorrelationExtractor, and replace the respective value following the formula `RefVar` + \_ + `RowNumber`.
1 change: 0 additions & 1 deletion docs/src/guide/custom-extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,5 @@ This is important, in most of the cases, to properly show the name of the Extens

Review these links for a further understanding of correlating concepts and examples:

* [Siebel's Custom Extension explained](siebel_extension_explanations.md): an explanation of Siebel CRM’s Custom Extension.
* [Extensions and useful methods in the Flow](the_flow_explanation.md): detailed explanation of how correlation works.
* [Examples](https://github.com/Blazemeter/CorrelationRecorder/tree/master/examples): basic structure for a Correlation Extension.
Loading

0 comments on commit f438e62

Please sign in to comment.