public class DslResponseAssertion extends DslScopedTestElement<DslResponseAssertion> implements DslAssertion
| Modifier and Type | Class and Description |
|---|---|
static class |
DslResponseAssertion.CodeBuilder |
static class |
DslResponseAssertion.TargetField
Identifies a particular field to apply the assertion to.
|
static class |
DslResponseAssertion.TestStringStrategy |
DslScopedTestElement.Scope, DslScopedTestElement.ScopedTestElementCallBuilder<T extends org.apache.jmeter.testelement.TestElement>| Modifier and Type | Field and Description |
|---|---|
protected boolean |
anyMatch |
protected static String |
DEFAULT_NAME |
protected DslResponseAssertion.TargetField |
fieldToTest |
protected boolean |
ignoreStatus |
protected boolean |
invertCheck |
protected DslResponseAssertion.TestStringStrategy |
testStrategy |
protected List<String> |
testStrings |
scope, scopeVariableguiClass, name| Constructor and Description |
|---|
DslResponseAssertion(String name) |
| Modifier and Type | Method and Description |
|---|---|
DslResponseAssertion |
anyMatch()
Specifies that if any check matches then the response assertion is satisfied.
|
DslResponseAssertion |
anyMatch(boolean enable)
Same as
anyMatch() but allowing to enable or disable it. |
protected org.apache.jmeter.testelement.TestElement |
buildTestElement() |
DslResponseAssertion |
containsRegexes(String... regexes)
Checks if the configured
fieldToTest(TargetField) contains matches for given regular
expressions. |
DslResponseAssertion |
containsSubstrings(String... substrings)
Checks if the specified
fieldToTest(TargetField) contains the given substrings. |
DslResponseAssertion |
equalsToStrings(String... strings)
Compares the configured
fieldToTest(TargetField) to the given strings for equality. |
DslResponseAssertion |
fieldToTest(DslResponseAssertion.TargetField fieldToTest)
Specifies what field to apply the assertion to.
|
DslResponseAssertion |
ignoreStatus()
Specifies that any previously status set to the request should be ignored, and request should
be marked as success by default.
|
DslResponseAssertion |
ignoreStatus(boolean enable)
Same as
ignoreStatus() but allowing to enable or disable it. |
DslResponseAssertion |
invertCheck()
Allows inverting/negating each of the checks applied by the assertion.
|
DslResponseAssertion |
invertCheck(boolean enable)
Same as
invertCheck() but allowing to enable or disable it. |
DslResponseAssertion |
matchesRegexes(String... regexes)
Checks if the configured
fieldToTest(TargetField) matches (completely, and not just
part of it) given regular expressions. |
scope, scopeVariable, setScopeTobuildConfiguredTestElement, buildTestElementGui, buildTreeUnder, configureTestElement, durationToSeconds, loadBeanProperties, showAndWaitFrameWith, showFrameWith, showInGui, showTestElementGuiclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbuildTreeUnder, showInGuiprotected static final String DEFAULT_NAME
protected DslResponseAssertion.TargetField fieldToTest
protected boolean ignoreStatus
protected DslResponseAssertion.TestStringStrategy testStrategy
protected boolean invertCheck
protected boolean anyMatch
public DslResponseAssertion(String name)
public DslResponseAssertion fieldToTest(DslResponseAssertion.TargetField fieldToTest)
When not specified it will apply the given assertion to the response body.
fieldToTest - specifies the field to apply the assertion to.DslResponseAssertion.TargetFieldpublic DslResponseAssertion ignoreStatus()
This allows overriding the default behavior provided by JMeter when marking requests as failed (eg: HTTP status codes like 4xx or 5xx). This is particularly useful when tested application returns an unsuccessful response (eg: 400) but you want to consider some of those cases still as successful using a different criteria to determine when they are actually a failure (an unexpected response).
Take into consideration that if you specify multiple response assertions to the same sampler, then if this flag is enabled, any previous assertion result in same sampler will be ignored (marked as success). So, consider setting this flag in first response assertion only.
public DslResponseAssertion ignoreStatus(boolean enable)
ignoreStatus() but allowing to enable or disable it.
This is helpful when the resolution is taken at runtime.
enable - specifies to enable or disable the setting. By default, it is set to false.ignoreStatus()public DslResponseAssertion containsSubstrings(String... substrings)
fieldToTest(TargetField) contains the given substrings.
By default, the main sample (not sub samples) response body will be checked, and all supplied substrings must be contained. Review other methods in this class if you need to check substrings but in some other ways (eg: in response headers, any match is enough, or none of specified substrings should be contained).
substrings - list of strings to be searched in the given field to test (by default
response body).public DslResponseAssertion equalsToStrings(String... strings)
fieldToTest(TargetField) to the given strings for equality.
By default, the main sample (not sub samples) response body will be checked, and all supplied strings must be equal to the body (in default setting only makes sense to specify one string). Review other methods in this class if you need to check equality to entire strings but in some other ways (eg: in response headers, any match is enough, or none of specified strings should be equal to the field value).
strings - list of strings to be compared against the given field to test (by default
response body).public DslResponseAssertion containsRegexes(String... regexes)
fieldToTest(TargetField) contains matches for given regular
expressions.
By default, the main sample (not sub samples) response body will be checked, and all supplied regular expressions must contain a match in the body. Review other methods in this class if you need to check regular expressions matches are contained but in some other ways (eg: in response headers, any regex match is enough, or none of specified regex should be contained in the field value).
By default, regular expressions evaluate in multi-line mode, which means that '.' does not match new lines, '^' matches start of lines and '$' matches end of lines. To use single-line mode prefix '(?s)' to the regular expressions. Regular expressions are also by default case-sensitive, which can be changed to insensitive by adding '(?i)' to the regex.
regexes - list of regular expressions to search for matches in the field to test (by
default response body).public DslResponseAssertion matchesRegexes(String... regexes)
fieldToTest(TargetField) matches (completely, and not just
part of it) given regular expressions.
By default, the main sample (not sub samples) response body will be checked, and all supplied regular expressions must match the entire body. Review other methods in this class if you need to check regular expressions matches but in some other ways (eg: in response headers, any regex match is enough, or none of specified regex should be matched with the field value).
By default, regular expressions evaluate in multi-line mode, which means that '.' does not match new lines, '^' matches start of lines and '$' matches end of lines. To use single-line mode prefix '(?s)' to the regular expressions. Regular expressions are also by default case-sensitive, which can be changed to insensitive by adding '(?i)' to the regex.
regexes - list of regular expressions the field to test (by default response body) must
match.public DslResponseAssertion invertCheck()
This is the same as the "Not" option in Response Assertion in JMeter GUI.
It is important to note that the inversion of the check happens at each check and not to the final result. Eg:
responseAssertion().containsSubstrings("error", "failure").invertCheck()
Will check that the response does not contain "error" and does not contain "failure". You can
think it as !(containsSubstring("error")) && !(containsSubstring("failure")).
Similar logic applies when using in combination with anyMatch method. Eg:
responseAssertion().containsSubstrings("error", "failure").invertCheck().matchAny()
Will check that response does not contain both "error" and "failure" at the same time. This is
analogous to !(containsSubstring("error")) || !(containsSubstring("failure), which is
equivalent to !(containsSubstring("error") && containsSubstring("failure)).
Keep in mind that order of invocations of methods in response assertion is irrelevant (so
invertCheck().matchAny() gets the same result as matchAny().invertCheck()).
public DslResponseAssertion invertCheck(boolean enable)
invertCheck() but allowing to enable or disable it.
This is helpful when the resolution is taken at runtime.
enable - specifies to enable or disable the setting. By default, it is set to false.invertCheck()public DslResponseAssertion anyMatch()
This is the same as the "Or" option in Response Assertion in JMeter GUI.
By default, when you use something like this:
responseAssertion().containsSubstrings("success", "OK")
The response assertion will be success when both "success" and "OK" sub strings appear in
response body (if one or both don't appear, then it fails). You can think of it like
containsSubstring("success") && containsSubstring("OK").
If you want to check that any of them matches then use anyMatch, like this:
responseAssertion().containsSubstrings("success", "OK").anyMatch()
Which you can interpret as containsSubstring("success") || containsSubstring("OK").
public DslResponseAssertion anyMatch(boolean enable)
anyMatch() but allowing to enable or disable it.
This is helpful when the resolution is taken at runtime.
enable - specifies to enable or disable the setting. By default, it is set to false.anyMatch()protected org.apache.jmeter.testelement.TestElement buildTestElement()
buildTestElement in class BaseTestElementCopyright © 2024. All rights reserved.