Skip to content

Changelog

v3.1.1

  • 392efca5: new permutation interface (#354)

  • 1187653d: Custom failure handling (#353)

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: IotHubUser support for receiving (C2D) messages (#346)

  • 1c7a89bf: improvements of keystore protocol: push, pop and del (#345)

  • cd58490d: sub-render variables if they contain templates in SetVariableTask and HttpClientTask (#344)

  • a589ef6a: PUT support in HttpClientTask and file contents when declaring variables (#343)

  • 95f7a27d: handle Mod nodes 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 accept verify in 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 for ServiceBus* and BlobStorage* resources (#318)

  • 366f0398: AAD refactoring (#317)

  • a5969568: ServiceBusUser and IteratorScenario improvements (#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 for WaitBetweenTask (#300)

  • 73ecf040: change context variables during runtime via SetVariableTask (#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 support cookies in request (#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 of expected_matches in 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 are StopUser or RestartScenario (#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 in requests/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 log scenario.failure_exception in LoopTask (#244)

  • 52c72d1d: update novella (#243)

  • 34b30626: refactoring regarding GrizzlyContextScenario references 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 task on_stop and log as errors (#235)

  • b8bf9e65: AAD authentication improvements (#234)

  • df73fdcd: HTTP authentication support outside of RestApiUser (#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 if async-messaged process 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: task on_start and on_stop functionality (#208)

  • 16efa80a: grizzly.user implementation of on_start and on_stop (#207)

  • 8906711a: use packaging.version instead of distutils.version (#206)

  • 9e6eeec1: rename grizzly.environment to grizzly.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 argument consume (#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

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.messagequeue needs 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 out docs extras 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

  • eba5ba1d: no testdata address, when running distributed (#134)

  • 606c7a80: changed mq version (#132)

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

  • da3c335d: conditional tasks task (#119)

  • cbcb1b8b: new location for logo in repo (#118)

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: TimerTask to measure "response time" for a group of tasks (#113)

  • 5ceca1e2: bug fixes in BlobStorageClient.put and scenario iterator (#112)

  • 53ed0ad5: remove debug print statement (#111)

  • 4f0f01f7: sort request statistics per scenario (#110)

  • 35091c96: grizzly.tasks.client must 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

  • e976144b: Bug/async messaged logging (#44)

  • b4b0be63: Feature/request until (#42)

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

v1.0.1

  • dae7be58: Corrected string comparison operator

  • 4b8a8470: Adjusted test for messagequeue

  • bd9bb977: Fix for being able to log MQ request payload

  • cc5dfff6: updated mkdocs to 1.2.3 due to CVE-2021-40978

  • 604f5704: fixed url