🕰 Changelog¶
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v1.3.0¶
- Release date: 2020-06-18 10:00
- Diff.
Added¶
Generated locustfiles now support both current major versions of Locust
(<1
and ~1
).
Note
Please note that this support will most likely be only temporary, so all users of Transformer are kindly encouraged to upgrade their Locust (or tell us what’s blocking them from upgrading).
Since Transformer follows semantic versioning, dropping support for some
versions of Locust will only be done in a major Transformer version, most
likely 2.0 (not yet planned).
If you rely on a pre-1.0 Locust, you can therefore continue upgrading
Transformer by following its minor updates
(e.g. pip install -U har-transformer=~1
).
v1.2.7¶
- Release date: 2020-06-03 10:42
- Diff.
Fixed¶
Feeding a Transformer-generated locustfile to a version of Locust more recent than 0.99 (May 16, 2020) now displays a more helpful error message suggesting to use a supported version of Locust. Previously, users only saw Locust crash on a now-invalid import from the locustfile. Thank you @TimSC for reporting this issue! (#70)
v1.2.6¶
- Release date: 2019-10-18 14:09
- Diff.
Any valid plugins that are in a current directory can be used by Transformer without previous installation. Thank you @jredrejo for your contribution! (#63)
v1.2.4¶
- Release date: 2019-05-17 15:46
- Diff.
Changed¶
No functional changes in Transformer! Moved tests away from the Transformer package and refactored them to use common fixtures.
v1.2.3¶
- Release date: 2019-05-03 16:03
- Diff.
Changed¶
No functional changes in Transformer! Fixed: pushing tagged releases to Github.
v1.2.2¶
- Release date: 2019-05-03 10:45
- Diff.
Changed¶
No functional changes in Transformer! Fixed the formatting of this Changelog and configured Travis to automatically push tagged releases to GitHub.
v1.1.2¶
- Release date: 2019-04-25 14:49
- Diff.
Added¶
transformer.request.Request.har_entry
- This new read-only property contains the entry as recorded in a HAR file,
corresponding to the specific
Request
object. As requested by @xinke2411 (#35)
v1.1.1¶
- Release date: 2019-03-11 16:03
- Diff.
Changed¶
A header in all generated HAR files now contains the version of Transformer and its new repository’s URL.
v1.1.0¶
- Release date: 2019-03-06 17:06
- Diff.
Added¶
transformer.request.Request.name
- Controls Locust’s URL grouping.
Its default value is
url
, which usually does the right thing and ensures retrocompatibility. Thank you @xinke2411 for this addition! (#34)
transformer.python.ExpressionView
- An
Expression
that wraps a non-Expression (e.g. aRequest
instance), similarly to howStandalone
is aStatement
that wraps an Expression. Helps manipulating non-syntax tree objects as part of the syntax tree. (#33) - Functional test suite
- A functional test suite in
functional-tests/
(with only one simple test for starting). It is part ofmake test
and can be run alone withmake functest
. (#37)
Changed¶
- When processing HAR requests with the application/json MIME type,
Transformer no longer uses the
params
field as a replacement for a missingtext
field. This was a mitigation for a bug in a different, Zalando-internal tool. (#33) - The documentation has migrated: from Markdown files (some in the repository,
some in the GitHub wiki) and loosely Markdown-formatted docstrings in the
code, to a Sphinx site under
docs/
and rich docstrings. Most Markdown files have been converted to reStructuredText in the process, including this changelog. (#38) - The documentation is no longer accessible from the GitHub wiki, but is now hosted by Read The Docs at https://transformer.readthedocs.io. (#43)
- The release process has changed: A new PyPI release is now published for each commit to the master branch. This should prevent situations where the documentation advertises features not yet released. (#46)
Fixed¶
- A bug in the conversion between
Task
andTask2
makes Transformer ignore all changes made by plugins torequest
. Thank you @xinke2411 for reporting this! (#33) - Lack of functional tests made us miss the fact that Transformer started
crashing when run on the HAR files from the
examples/
directory. Transformer was fixed and the appropriate unit and functional tests were added. (#44)
Removed¶
transformer.task.Task.as_locust_action()
As part of the merge between
Task
andTask2
(#11).as_locust_action()
generates locustfile code as a string, which is made obsolete by thetransformer.python
syntax tree framework. (#33)transformer.decision
- Unused API for combining a boolean (the decision itself) with a string (a user-friendly explanation for that decision). (#36)
v1.0.2¶
- Release date: 2019-02-22 11:38 CET
- Diff.
Added¶
transformer.dump()
&transformer.dumps()
Named by analogy with
json.dump()
andjson.dumps()
, these high-level functions should be all most users need to know about the Transformer API. They convert lists of scenario paths and plugins into a locustfile.They will replace
transform()
, which requires more familiarity with Transformer’s internals. (#14)transformer.locust.locustfile_lines()
Similar to
locustfile()
but returns anIterator
str
over lines, instead of a unique string containing the full locustfile contents.This design allows for more flexibility in
dump()
/dumps()
and should result in smaller memory usage for huge locustfiles. (#14)- Hooks for OnTask, OnScenario, OnPythonProgram
- Preliminary support for new-generation plugins. (#25)
Changed¶
The
dump()
,dumps()
, andtransform()
functions by default use the Sanitize Headers plugin, even if users don’t provide it in the plugin list.This is because the resulting locustfile would almost certainly be broken without this plugin. Users can still opt-out from default plugins by passing the
with_default_plugins=False
keyword-argument to these functions. (#14)
v1.0.0¶
- Release date: 2019-02-12 10:30 CET
- Diff.
Added¶
- har-transformer on PyPI
- It looks like the package name
transformer
is already taken, unsurprisingly. (#3)
- Command-line entrypoint
- Transformer can now be called using the
transformer
script installed by pip, or viapython -m transformer
. (#7) - Specification of OnTask, OnScenario, OnPythonProgram
- Aiming at eventually deprecating OnTaskSequence.
transformer.plugins.contracts.Plugin
- Represents an instantiated plugin.
Changed¶
- This project is open-sourced in https://github.com/zalando-incubator. The git history prior that is removed per company policy.
transformer.plugins.Plugin
is renamedtransformer.plugins.contracts.OnTaskSequence
.