Skip to content

Changelog

v3.3.1

  • 1bf6e9ff (cli) refactoring get_dependency_versions (#389)

v3.3.0

  • 0a442947 (all) updated dependencies with known vulnerabilities (#388)

v3.2.5 legacy

  • 152d0623: revert release workflow to use python 3.12

v3.2.4

  • 66ed9d16: problem building docs in CI workflow

v3.2.3

  • 4e99dc36: use inspect.getmro do determine argument type (#375)

v3.2.2

  • e21141ef: hanging after test finished (#374)

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 in RuntimeError when 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_exist argument 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

  • 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