Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Labeling of Transactions, Actions, and Requests #478

Open
rschwietzke opened this issue Feb 28, 2024 · 1 comment · May be fixed by #507
Open

Labeling of Transactions, Actions, and Requests #478

rschwietzke opened this issue Feb 28, 2024 · 1 comment · May be fixed by #507
Assignees
Labels
enhancement New feature or request report Change to report or reporting.

Comments

@rschwietzke
Copy link
Contributor

rschwietzke commented Feb 28, 2024

Goal

We want to label transactions, actions, and requests. So we can group these better. See https://training.xceptance.com/qa-and-test/050-performance-rating-system-devtest-leeds-2019.html#/14 for an example of categories (homepage, catalog, cart, account, checkout, place order).

  • These labels have to be part of the testreport XML and later HTML.
  • For performance reasons, this labeling has to happen when all data was collected because it does not merge or split data, just "stamps" it.
  • A label can be any string, such as homepage, #test, F17, Foo Bar or even an emulated double label, such as "homepage, B2C" (w/o the quotes of course). Barely any limits on what characters are possible.

Non-Goal

We would rather not have the full freedom yet to grab data from the evaluation and move it into the label. This is a very static approach.

Examples

  • Transactions: transactional, registered
  • Actions: catalog, cart, checkout, homepage
  • Requests: catalog, cart, checkout, homepage

Non-Goal

We would rather not add multiple labels at the moment, so we don't think tags here.

Requirements

Report

All label information has to be part of the output XML so the reporting can later on incorporate it as well as the upcoming evaluation module.

The transaction, action, and the request table in the section of the report will get a new column "Label" (next to name) which supports sorting and filtering similarly to "Name".

One should be able to filter one column and later the other. We imagine two input fields here so it is clear where you filter, and we don't introduce any special syntax for the filters by that (this is lower prio and can be moved into a future release).

When there is no label attached, the cell or column stays empty.

Definition

The test suite gets new properties for the labeling. We will use a similar concept to merge and Apdex rules.

com.xceptance.xlt.reportgenerator.label.1.matching.name = .*Homepage$
com.xceptance.xlt.reportgenerator.label.1.matching.name.exclude = ^Goto.*
#com.xceptance.xlt.reportgenerator.label.1.matching.label = ordering
#com.xceptance.xlt.reportgenerator.label.1.matching.label.exclude = bathtub.*
com.xceptance.xlt.reportgenerator.label.1.label = Homepage
com.xceptance.xlt.reportgenerator.label.1.stopOnMatch = false
  • Matching: We match against the name and label only. One or the other has to be given, if both have to be given, we run an AND operation across all matching types.
  • Exclude: gives us the ability to specify things to negate against in case our regexp cannot cover that.
  • stopOnMatch: Allows us to stop match rule processing for that name if needed, this will simplify rule setup
  • Label: The label to apply. This is just a string, so anything is permitted here.

Rules are processed in order (1, 2, ...) and you can have holes in the list (similar to mergerules) and you don't have to start with 1 or have an upper limit (well.. Integer.MAX is the limit, kind of).

When

Labeling takes place after merge rule processing, so labeling can efficiently cache many evaluations and does not have to perform it again. Ensure that this is per thread to avoid contention (similar to merge rules).

More

See #508

@rschwietzke rschwietzke added enhancement New feature or request report Change to report or reporting. labels Feb 28, 2024
@rschwietzke rschwietzke added this to the 8.1.0 milestone Feb 28, 2024
@jowerner jowerner modified the milestones: 8.1.0, 8.2.0 Mar 18, 2024
@jowerner jowerner removed this from the 8.2.0 milestone Jun 3, 2024
@jowerner jowerner added this to the 8.3.0 milestone Jul 2, 2024
@jowerner jowerner self-assigned this Jul 2, 2024
@jowerner jowerner linked a pull request Jul 8, 2024 that will close this issue
@jowerner
Copy link
Contributor

jowerner commented Jul 8, 2024

Labeling rules are similar to merge rules, so applied the same mechanism here. Also reused the rule configuration syntax.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request report Change to report or reporting.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants