-
Notifications
You must be signed in to change notification settings - Fork 0
Test description
Test-description is a combination of two elements - info-collectors and scenario. Example of usage :
<test-description id="googlePageTest">
<info-collectors>
<validator xsi:type="validator-not-null-response"/>
<metric xsi:type="metric-custom" calculator="responseSize">
<metric-aggregator xsi:type="metric-aggregator-avg"/>
<metric-aggregator xsi:type="metric-aggregator-sum"/>
<metric-aggregator xsi:type="metric-aggregator-std"/>
</metric>
</info-collectors>
<scenario xsi:type="scenario-query-pool" parent="pageScenario">
<endpoint-provider xsi:type="endpoint-provider-list">
<endpoint>http://google.com</endpoint>
<endpoint>http://google.ru</endpoint>
</endpoint-provider>
<query-provider xsi:type="query-provider-list">
<query></query>
</query-provider>
</scenario>
</test-description>
##Collectors
info-collectors is a list of collectors. Collector can be as metric element or as validator element. Metric collector can contains several aggregators.By default in Jagger was implemented three aggregators (sum, avg, std). By default uses metric-aggregator-sum. Collector is a listener that calls after each iteration.
Validator is a kind of collector, which validate each response and display percent of success rate. You can find result of validator in Test Details path -
Metric is a kind of collector, which calculate some information from responses. All metric results displays in the path Details at the last line -
In this example metric is called - sdpPureTimeMetricCalculator
There are some standart types of collectors -
validator-not-null-response and metric-not-null-response calculate not null responses.
validator-consistency - see point Calibration
Also you can create your own [custom collector](Custom information collectors).
##Scenario
In scenario you can describe what targets will be loaded and what tool use to make load.
Possible type of scenario is scenario-query-pool. Example of such scenario -
<scenario xsi:type="scenario-query-pool" parent="pageScenario">
<invoker xsi:type="invoker-http"/>
<endpoint-provider xsi:type="endpoint-provider-list">
<endpoint>http://google.com</endpoint>
<endpoint>http://google.ru</endpoint>
</endpoint-provider>
<query-provider xsi:type="query-provider-list">
<query>hello</query>
</query-provider>
<query-distributor xsi:type="query-distributor-round-robin"/>
</scenario>
###Invoker
Invoker is an object that executes queries.
###Endpoint and query providers
endpoint-provider and query-provider are jagger components that provide sources, where jagger can take queries and endpoints
You can choose standart types - endpoint-provider-list and query-provider-list or create your [own provider](Custom endpoint and query providers).
Example of providers -
<endpoint-provider xsi:type="endpoint-provider-list">
<endpoint>https://jagger.griddynamics.net</endpoint>
</endpoint-provider>
<query-provider xsi:type="query-provider-list">
<query>index.html</query>
<query>screenshots.html</query>
<query>download.html</query>
</query-provider>
###Query distributor
Query distributor is an object, that provides an algorithm how to distribute queries by endpoints. Possible types of query-distributor :
query-distributor-one-by-one - Schedules queries across endpoints one by one. For input: endpoints [e1, e2] and queries [q1, q2, q3] executes actions in following order: (e1, q1), (e2, q1), (e1, q2), (e2, q2), (e1, q3), (e2, q3).
query-distributor-round-robin - Encapsulates round robin algorithm. For input: endpoints [e1, e2] and queries [q1, q2, q3] returns (invoker, query) pairs in following order: (e1, q1), (e2, q2), (e1, q3), (e2, q1), (e1, q2), (e2, q3).
You also can create your [own query distibutor](Custom query distributors).
##Calibration
You can turn on calibration in test-description by adding attribute calibration="true". Calibration is a process, when Jagger in a simple(one thread) mode load every target only one time. The results, that were calculated in this process, will be a benchmark for comparison with the new iterations.
To use this option add component 'validator-consistency'. You can override comparison by using next attributes - resultEq, queryEq, endpointEq. Every component must implements interface Equivalence. queryEq, endpointEq will help to identify resposne and endpointEq will compare original response with new response.
Example of usage -
<test-description id="default" version="1" calibration="true">
<info-collectors id="defaultCollectors">
<validator xsi:type="validator-consistency" resultEq="eq1"/>
<metric id="responseSize" xsi:type="metric-custom" calculator="responseSize"/>
</info-collectors>
</test-description>
<beans:bean id="eq1" class="your class, which implements Equivalence interface"/>

