Changelog
v3.2.1
-
a4804922: replace pydoc-markdown with mkdocstrings (#373) -
41147350: dependencies update (#371) -
f56d40fb: retry can raise failure_exception if set (#370) -
e7bc9b81: own identity for TestdataConsumer logger, to avoid confusion, since it's shared between all user instances of the same type running on the same worker. (#369) -
c19a4565: keystore: more ambigous message inRuntimeErrorwhen no value is found for key (#368) -
5158f7f5: IotHubUser: remove verbose info logging (#367) -
d0fb8e09: HttpClientTask: paths to client cert and key should be relative to context root (#366) -
8490d6ff: RestApiUser: assume that cert/key files are relative to context root (GRIZZLY_CONTEXT_ROOT) (#365) -
df745b38: request task failure handling + spawning complete synchronization (#364) -
d8da1c4e: bump locust version (#363) -
f02b765b: no http retries (#362) -
fd12f3f2: IotHubUser:allow_already_existargument for requests (#361)
v3.2.0
-
71c6aa31: bad PR -- a lot of changes (#360) -
cf9409eb: rewrite of testdata communication, and other improvements (#357) -
f5c079b8: ServiceBus improvements in async-messaged (#356) -
95bbbb87: CSV writers keep files open during test + user events for the writing (#355)
v3.1.1
v3.1.0
-
1e902cdb: testdata variable message handlers should run concurrent (#351) -
c19bdfa5: dump include variables in--dry-run(#350) -
e1a01cec: improved handling of abort (ctrl + c) (#349) -
854886bc: Async-messaged fixes; (#348) -
3b98bc39:IotHubUsersupport for receiving (C2D) messages (#346) -
1c7a89bf: improvements of keystore protocol:push,popanddel(#345) -
cd58490d: sub-render variables if they contain templates inSetVariableTaskandHttpClientTask(#344) -
a589ef6a: PUT support inHttpClientTaskand file contents when declaring variables (#343) -
95f7a27d: handleModnodes in jinja2 templates (#342) -
20bd1104: new atomic variable:AtomicJsonReader(#341)
v3.0.0
-
982e8d0f: rewrite of variable separation per scenario (#339) -
60c78363: update locust version to a official release (#337) -
69e4c9a6: geventhttpclient does not acceptverifyin request arguments (#336) -
00338035: variables per scenario (#335) -
96bd4ff2: fix for "Aborting test can fail when running distributed with MQ" (#333) -
158e715a: override influxdb event with special named context key-values (#332) -
fd54641d: general improvements (#330) -
c42570d0: increment value in keystore (#327) -
47485f51: merge environment configuration files (#326) -
9dfabf94: jsonpath filter one of,=|(#325)
v2.10.2
-
2d0336a7: retry creating a service bus connection if it times out (#322) -
953852b3: fixing stability issues identified during ~5h tests (#321)
v2.10.1
ed82ea4d: do not touch cookies or authorization headers (#320)
v2.10.0
-
16c03465: refresh token bug (#319) -
830abee4: credential support forServiceBus*andBlobStorage*resources (#318) -
366f0398: AAD refactoring (#317) -
a5969568:ServiceBusUserandIteratorScenarioimprovements (#316) -
af9b1647: update databind version to 4.5.1 (#315) -
8c561786: dry run (#314) -
82eec240: improved AST parsing of jinja2 templates (#313) -
907cdaf2: set variable task resolve file value (#311) -
aa93dae7: disable sketchy dispatcher unittests (#312) -
e9c5e3e7: azure-servicebus version 7.12.1 (#310) -
5c5b2e54: execute python script step improvements (#309) -
3e067ebe: Execute python script runs at module level (#308) -
a22acea8: fix for incorrect step expression for inline script (#307) -
dfdbd292: initialize variable values from files (#306)
v2.9.3
c74c22d0: influxdb: add additional tags to writes (#305)
v2.9.2
53fe3e35: resolve_variable: allow both environment configuration/variables and jinja variables in an input string (#304)
v2.9.1
12724cf7: execute python scripts during behave phase of grizzly (#303)
v2.9.0
-
7dfa643e: custom dispatcher logic to be able to isolate user types to workers (#302) -
d68318f0: Support for gzipping payload sent to IoT hub (#301) -
ee162bf7: support templating forWaitBetweenTask(#300) -
73ecf040: change context variables during runtime viaSetVariableTask(#292) -
229092f5: handle ENAMETOOLONG when creating a request task with source in context text. (#290) -
45af414e: handle property validation on flat objects (#289)
v2.8.0
-
02957022: geventhttpclient does not supportcookiesinrequest(#288) -
f0c635c2: async-messaged logging refatored (#287) -
55da160b: find used variables in assig expressions{% .. %}(#285) -
ab8b7e20: rewrite of request events (#286) -
05f63241: Update issue templates -
8a44416e: replace pylint+flake8 with ruff (#282) -
b2101ede: service bus client unquote bug (#279) -
7a1f1ecc: BlobStorageUser: support for RECEIVE/GET (#277) -
97869ec3: major documentation overhaul (#276)
v2.7.4
b4987581: update IBM MQ redist URL (#274)
v2.7.3
-
cd70468a: bump pymqi version (#265) -
cb6eab8b: AAD: check for error message before updating state (#264) -
3116d546: support for templating ofexpected_matchesin response handlers (#263)
v2.7.2
-
fe4d1d9c: software based TOTP for AAD user authentication (#262) -
37c021c5: keystore -- share testdata between scenarios (#261) -
b97fe65a: do not fire ResponseEvent for exceptions that areStopUserorRestartScenario(#258) -
5e7f4b45: include code of conduct in generated documentation (#257) -
74cd98a8: Create code of conduct (#255) -
7a8d79df: async-messaged: reconnect to MQ queue manager if connection is broken (#253) -
6ac36e6e: add support for ISO 8601-ish format in DateTask (no separators) :( (#254) -
aa91d5dd: add support for sub log directories inrequests/logs(#252)
v2.7.1
3e508501: grizzly.auth.aad: flow token in step 2 now changes (#251)
v2.7.0
-
9a3ca4e4: bump versions (#249) -
47a1201a: Update issue templates (#245) -
15779776: persist flagged variables when test is stopping (#247) -
b40cfcb2: refactoring of handling RequestTask (#246) -
0c2cbab4: do not logscenario.failure_exceptioninLoopTask(#244) -
52c72d1d: update novella (#243) -
34b30626: refactoring regardingGrizzlyContextScenarioreferences for users (#241) -
a2ea8941: response handlers should execute even though payload/metadata is empty (#242) -
7edebccb: custom jinja2/templating filters (#240) -
c624dcb7: handling of SIGINT/SIGTERM to gracefully stop test (#238)
v2.6.5
-
10942c9d: only allow writing a complete row at a time in AtomicCsvWriter (#237) -
79a6f3f5: rewrite grizzly.tasks.clients.servicebus to support more than one parent (#236)
v2.6.4
-
d41a2b15: catch exceptions from taskon_stopand log as errors (#235) -
b8bf9e65: AAD authentication improvements (#234) -
df73fdcd: HTTP authentication support outside ofRestApiUser(#231) -
e9e62d42: correct handling of return code from behave (#233) -
56dc7531: use docker composer v2 in code-quality workflow (#230)
v2.6.3
-
a52cfc5c: async messaged improvments (#228) -
fa51b3ce: wrapper tasks implements on_start/stop (#227) -
fd245ca6: support for jsonpath expression filter on "flat" objects (#225) -
f289d6d3: prefix subscription name with id of user instance (#224) -
c4e8acf2: docs generate sort version (#223) -
c79b5927: E2E distributed tests takes too long time (#222) -
55fb7060: backing out PR #200, since interfere with logging of other tasks. (#221) -
61db0889: abort ifasync-messagedprocess is gone (#219) -
9dbac3e5: metadata is a dict, but when saved in a variable it should be a (json) string (#218) -
c557a6eb: client task implementation for saving response metadata in variable (#217)
v2.6.2
-
5a00f706: fixed documentation for missing path and fragment variables (#215) -
7d653c53: get current tasks the right way (#214) -
1ac1c4d1: RestApiUser, oauth2 token v2.0 flow (#213)
v2.6.1
d541500e: servicebus client task (#212)
v2.6.0
-
c01805fb: implementation of AtomicCsvWriter (#211) -
1c2b824d: code maintenance 2023-03 (#209) -
b0e3a68b: taskon_startandon_stopfunctionality (#208) -
16efa80a: grizzly.user implementation of on_start and on_stop (#207) -
8906711a: use packaging.version instead of distutils.version (#206) -
9e6eeec1: renamegrizzly.environmenttogrizzly.behave(#205) -
47a61445: updated locust version (#204) -
69938441: suppress error procuded in wrapped tasks to be logged to the error summary (#203)
v2.5.11
-
85650a55: set a fixed time for one iteration of a scenario (#201) -
30c9eadb: do not log internal flow exceptions as errors in conditionals (#200) -
a7e13f04: improvements of information printed when grizzly is running locust (#198) -
5f09a9dc: fixed tags sorted incorrectly (#191) -
8594a4fa: improved UntilTask traceability (#194)
v2.5.10
da7eb36b: async-messaged: gracefully close handler connections when terminating… (#190)
v2.5.9
32414118: AtomicServiceBus: add argumentconsume(#189)
v2.5.8
-
1334c917: updated shield.io url for github workflow status (#188) -
59560193: IoT hub, error handling (#187)
v2.5.7
-
fc436358: tag measurements with scenario they belong to (#185) -
67abbb50: write user count per user class name to influx every 5 seconds (#184)
v2.5.6
-
516b119f: background variable declaration (#183) -
2ae0c0b2: updated workflow actions to remove warnings (#182)
v2.5.5
2a4041eb: csv logging (#181)
v2.5.4
65de8865: concurrency fixes in MQ and SB related code (#180)
v2.5.3
-
d9c89199: get messages from MQ with SYNCPOINT and configuration of max message size (#179) -
784f6b89: IotHubUser, for uploading files to Azure IoT Hub (#177) -
1a4a826f: improved support for jinja2 expressions (#176) -
c28e52d8:grizzly.tasks.client.messagequeueneeds unique worker for each instance of a scenario (#175) -
5cceb577: print returncode of locust to stdout (#174)
v2.5.2
-
70d1d245: azure.servicebus receiver sometimes returns no message, even if there... (#173) -
7b63d1b6: better handling of arthmetic when parsing out variables from templates (#172) -
caf9693d: on_consumer testdata variables needs information about current scenario (#171)
v2.5.1
-
599db8eb: instructions in example docs on how to install vscode extension (#169) -
e57eea5d: corrected grizzly-cli run commands in example (#167) -
161af067: async-messaged returns un-encoded RFH2 payload after PUT (#165) -
7d034b26: removed deprecated set-output commands in workflow (#164) -
5a35ffef: more MQ information (#162)
v2.5.0
-
ef6a4675: move outdocsextras from pyproject.toml (#158) -
d4880ee2: env conf inline resolving and "generic"UntilRequestTask(#157) -
7285294b: refactoring of get_templates (#156) -
b694acaa: implementation of %g (GUID/UUID) formatter for AtomicRandomString (#152) -
a3854842: Post XML, multipart/form-data and metadata per request (#151) -
10883c87: dependency update 2209 (#150) -
1ce3a43c: persist variable values between runs (override initial value based on previous runs) (#149) -
b39247e8: declared and found variable cross-check (#148) -
e4e353de: fixed broken release workflow (#147)
v2.4.6
-
1a6e07da: fix missing variables due to filter (pipe) in templates (#145) -
e7e606b7: checkout release tag correctly so edit url in docs is correct (#146) -
cc5bf649: added documentation for editor support (#144) -
c37140aa: correct typings for release workflow inputs (#143) -
c3ed2eb7: document response handler expression arguments (#142) -
3d2aa051: documentation of metadata comments in feature files (#141) -
5db8bfe3: allow templating strings as input to WaitTask (#140) -
e297da03: e2e dist (#139) -
7a491161: run e2e tests distributed (#138) -
b24db98b: create zmq socket for each request (#136) -
9777db82: fix for last task not being executed when user is stopping (#135)
v2.4.5
v2.4.4
-
501b5960: allow an arbritary number of matches (#130) -
d8406a55: loop task (#129) -
a7928eea: TransformerContentType should be permutated in y direction (#128) -
2bb8c045: updated dependencies due to lxml security fix (#127) -
aea3d97b: grizzly implementation of print_percentile_stats (#125) -
4ba8066d: annotate non-enum custom types with__vector__(#124) -
fa4a2b16: annotations for enums used in step expressions (#123)
v2.4.3
-
27ebe108: mq rfh2 support (#122) -
8b794ad1: create list of tasks for pointer when switching (#121) -
3e16160c: fixed examples for conditional task (#120)
v2.4.2
v2.4.1
-
1ce7f0ad: fix for documentation build and deploy (#117) -
484f8010: changed to novella build backend and improved documentation (#116)
v2.4.0
-
8e026ad8: updated dependencies (#115) -
5c747f53: request wait task (#114) -
6684c357:TimerTaskto measure "response time" for a group of tasks (#113) -
5ceca1e2: bug fixes inBlobStorageClient.putand scenario iterator (#112) -
53ed0ad5: remove debug print statement (#111) -
4f0f01f7: sort request statistics per scenario (#110) -
35091c96:grizzly.tasks.clientmust have a name (#109)
v2.3.1
-
c754a8aa: support ISO 8601 formated DateTime and Time (#107) -
e33cd941: client task ibm messagequeue (#103) -
eabe7b8f: possibility to implement custom (non-grizzly) atomic variables (#102) -
e4193dd4: possibility to register custom locust message types and handlers (#101) -
13b6c444: scenario statistics (#98) -
ba37b60a: validating response step expression updated (#97) -
89149d9d: "end to end" (E2E) test cases (#95)
v2.3.0
-
b4fc150f: Change scenario hash to numerical index (#94) -
6ecc7ab3: support for parallell tasks (#92) -
2f7025d9: make tests runnable on windows (#91)
v2.2.1
-
0ae1b373: automagically check pypi for package url if unknown (#90) -
e6ef9d8f: install additional script dependencies correct (#89) -
c0a53532: add support for requirements-script.txt to pip-sync wrapper (#88) -
67f3d269: install and cache script requirements (#87) -
ddd9929c: restructuring of code-quality workflow (#86)
v2.2.0
-
d45b62d1: github action action-push-tag@v1 is broken (#85) -
283fe3fe: bug fix for iterations to stop when not finishing (#84) -
0ed596f2: Feature/clients tasks (#81) -
6e6496ed: create docs/licenses if it does not exist, before trying to write md file (#79) -
0dd489a3: restructure of documentation (#78)
v2.1.0
-
c4260a9e: Feature/response handlers (#77) -
8278d17a: step to set user metadata/header key values (#75) -
11de9b7f: clearer job name in code-quality workflow (#70) -
b6845b79: Feature/issue 64 pep518 (#69) -
fbd96cfa: Feature/issue 61 pytz (#68)
v2.0.0
-
af5e639b: twine: command not found (#67) -
052a5ab9: Feature/dependency update round 2 (#66) -
d4a3b935: Feature/mq heartbeat (#65) -
884b6761: Feature/dependencies update (#63) -
02c88045: Plain text transformer fix, plus added rendering of date offset value (#62) -
001cc5e5: Bug/until task aborts (#60)
v1.5.3
-
7c2b7a91: Feature/cli docs (#59) -
a53f9159: Bug/until stops too soon (#58) -
f53bb8b8: removed debug print statements (#56) -
fb9f4933: removed debug print statements (#56)
v1.5.2
fb9f4933: removed debug print statements (#56)
v1.5.1
a2857569: verify_certificates bug fixed (#55)
v1.5.0
-
1c57c7f0: Feature/restart scenario (#54) -
9326218f: MQ concurrency fix (#53) -
cc178860: renamed grizzly.tasks to grizzly.scenarios (#52) -
281e9beb: fixed bug in parse_arguments if an argument value contained comma (#51)
v1.4.4
-
e13ff471: Feature/date parse task (#50) -
d16ef8e1: handle exceptions during until retries (#49) -
0994f9af: increased test coverage (#48) -
eaaeab22: Fix for doing retry upon receiving MQRC_TRUNCATED_MSG_FAILED while browsing messages (#47) -
88202428: support for templating in arguments in condition (#46)
v1.4.3
3e47adbd: fixed alignment i scenario summary (#45)
v1.4.2
v1.4.1
e6d8fb3f: fix for ensuring correct data type in metric written to influx (#41)
v1.4.0
-
26b81305: print start and stop date and time when finished (#40) -
4aef0eef: request response_time fixes (#39) -
fb95268f: updated dependencies and devcontainer (#38) -
f98d904d: Feature/scenario info (#37)
v1.3.1
-
73827bf4: error logging in transformer class (#35) -
3e5e03aa: init racecondition (#36) -
dd0c75a5: support for request template files in combination with data tables (#34) -
8d56f4fe: Feature/parameterize more (#33)
v1.3.0
-
60f39988: transparent support for setting content type in endpoint (#32) -
423bc994: expression support for service bus functionality (#31) -
2e2695df: support for offset in AtomicDate (#30) -
41b78e89: AtomicMessageQueue content type support (#29) -
979d4bbb: unified arguments handling through out grizzly (#28) -
6fad96e4: simplified AtomicMessageQueue and AtomicServiceBus (#27) -
64888c05: implementation of getter tasks (http) (#26) -
2d6862d7: Restored dummy_pymqi.py, the added stuff wasn't needed -
4f21a8d3: MessageQueueUser: get messages that matches expression -
1e1edc44: run code quality workflow when PR is updated -
6dc839c9: corrected sentence in documentation for SleepTask
v1.2.0
-
6ee5fffe: added documentation for the different task types -
1b91d79b: implementation of AtomicServiceBus variable -
b867d471: ServiceBus support in async-messaged -
83c0ac9c: refactoring of grizzly_extras.messagequeue -
9b9953e6: included mypy extension in devcontainer -
aea0c288: implemented RECEIVE for ServiceBusUser -
b046b60c: Changed spawn_rate to float and fixed tests -
3ce0b102: Changed spawn rate from int to float -
a789a71d: Added support for user weight -
29f7d047: updated atomic variables getting value and arguments -
81ccbed1: change log level for grizzly_extras if started with verbose
v1.1.0
-
b78be958: new task to parse data -
b2ed98a1: XmlTransformer: match parts of a document, and dump it to string -
9c55e5a3: move testdata production if variable has on_consumer = True -
cfe9875b: specify external dependencies for users and variables in the objects themself -
2140fe79: new variable AtomicMessageQueue -
1f6dba03: refactoring for clearer distinction between utils and step helpers. -
99fab953: fixing empty changelog in workflow@github -
c5ddeeb9: generate changelog when building documentation -
5e595637: fixed missed float -> SleepTask change in test -
2c688554: improved base for adding different types of tasks -
cb8db862: reafactor LocustContext to GrizzlyContext -
3f1137b9: refactoring of grizzly.tasks -
bd3382e0: refactoring RequestContext to RequestTask -
031a9595: handle edge cases with Getitem nodes -
ca7c17d7: handle Getitem nodes when parsing templates for variables -
a1cabb31: only try to remove secrets from dicts -
1145a651: possibility to store json objects/list in variables