There's a question on displaying default values in UI:
https://github.com/apache/jmeter/issues/6026
They say it is confusing to see the defaults in "HTTP Request Defaults"
since the user can't tell if it will overwrite HTTP request or not.

I agree it is confusing, and it brings a new question: can we really "omit
saving default values"?
In other words, if we omit saving the defaults, then we won't be able to
tell if user intentionally sets the value to UTF-8 or not.

As a quick WA I suggest PR https://github.com/apache/jmeter/pull/6027 ,
however, we probably need to adjust "default vs unset" behaviour later,
especially for checkbox-like elements where it is hard to tell if the unset
value is intentionally blank or if it is just a default.

I guess we need to cancel the vote, merge something like 6027 and create RC2

---

One of the solutions could be:
* treat blank text field as an intention to "remove property" (==PR6027)
* treat non-blank field as an intention to "keep exactly that
value" (==PR6027)
* It is not clear what to do with checkboxes though
I believe it is super confusing if "empty checkbox in HTTP Request Default"
should override a "filled checkbox in HTTP Request Sampler".
In other words, for text fields it is unlikely people would need
"intentionally blank values", so we can treat "blank fields" as if user
wants clearing the value.
However, for checkboxes, they would need both "just use default" or
"intentionally unsed checkbox".
* A similar question exists for radio buttons: how do we identify which was
just left intact vs which was intentionally selected

It becomes challenging at the API level as well: is
TestElement.setProperty(key, null) and intentionally set blank value, or
could it remove property instead?
Should TestElement.setProperty(key, "") be treated differently from
TestElement.setProperty(key, null)?

I guess, the ideal case is that UI components should track which fields
were modified, and save only the modified fields to the element properties.

Vladimir

Reply via email to