Changelog for year 2018

1.13.203 dec 2018

  • introduce a convention for plugin configs autodetection
  • optimize aggregator subsystem: bypass consolidation step when single execution is used, use single-pass HDR iterator
  • Gatling 3 support: use new keywords in scala file (baseUrl, during), use properties instead of cmdline params, handle new syntax of simulation.log
  • support embedded resource download options for Gatling
  • support body of dictionary style for Gatling YAML scripts
  • use blacklist for cloud config filtering
  • don't fail if failureMessage is empty in error.jtl
  • add screenshot(filename) Selenium action, allow using variables and interpolation in screenshot names
  • bump taurus-java-helpers to 1.8
  • do not depend on bzt in generated Selenium scripts (get rid of taurus_selenium_extras.py)
  • add generate-flow-markers option (scenario/settings level) for Nose tests
  • fix chrome-loader.exe location in windows installer (used by proxy2jmx)
  • use JTL as a results format for JUnit-based load tests
  • prevent skipping assertion failures from Selenium scripts
  • allow waiting for file with external results to appear within timeout
  • generate stepping schedule in JMeter TST when steps are used
  • don't raise exception when JMeter uses JSON body with no appropriate header
  • delegate multipart property setup to JMeter
  • support cloud failure criteria for BM tests to set exit code
  • added masterId argument when uploading monitoring file to BM
  • add include/exclude for -install-tools alias
  • don't fold labels and errors until 1/4 of limit used

1.13.126 oct 2018

  • use auto-growing histogram object to optimize CPU and memory usage (big impact)
  • optimize folding of labels and errors by using fuzzyset data structure (big impact)
  • bump up default JMeter to 5.0
  • bump up chromedriver to 2.43 and geckodriver to 0.23.0
  • fix DivisionByZero error happening for Cloud tests
  • fix hanging of shellexec commands due to wait() call used
  • use JMeter properties for configuration of PluginManagerCMD
  • in JMeter, allow starting throughput from float values less than 1.0
  • fix results reading for latest Locust
  • support proxy for all HTTP requests made from Taurus
  • support store-cache flag in Gatling
  • bump astunparse dependency version and fix tests
  • fix handling of subsample errors for BZA reports (Python 3)
  • don't fail cloud test on variable resource file name
  • fix logging unicode into file, filter broken output of third party tools
  • handle subsamples asserts as ERRTYPEASSERT instead of ERRTYPESUBSAMPLE
  • fix Gatling report reading when groups are used, limit to first level of group hierarchy
  • allow JMeter to send binary files via body-file
  • change Windows platform name in pip requirements
  • fix lost error message/trace for Postman scripts with assertions
  • refactor RequiredTool superclass, affects all underlying tool handling
  • less logging written for JUnit executor
  • use STATUSBROKEN instead of STATUSFAILED in JUnit 4
  • added rc-file as an executor option for Siege
  • some refactorings around artifacts dir in env variables
  • allow specifying Remote webdriver address and more capabilities for Selenium test

1.13.04 sep 2018

  • Windows installer is now self-contained, can be used without network connection (need to uninstall older versions first!)
  • remove BetterDict usage from DataPoint and KPISet - impactful internal change
  • fix nested dict merge operations with prefix flags (~, $ etc)
  • restore stdev KPI reporting
  • add JSON representers for KPISet and DataPoint
  • make percentiles and standard deviation be calculated only when queried, this postpones heavy calculation into a "lazy" model
  • bump up default chromedriver version to 2.40
  • use Google Iowa as default Cloud location, instead of Sandbox
  • fix reporting tables on Windows platform not displayed
  • bump Apiritif version to 0.6.7 (fixes unicode support for CSV/LDJSON-based reports, fixes multiprocessing errors, supports CONNECT and OPTIONS HTTP methods)
  • make Java version checks more robust
  • support JUnit 5
  • add support for concurrency for JUnit executor
  • add "open window" action for Selenium YAML scripting
  • make java-related tools auto-install more robust
  • fix Taurus crash when retrieving JMeter diagnostics on Python 2
  • fix handling of JMeter script encodings
  • fix Final Stats Reporter crashing on long data type
  • do not send multiline note to BZA
  • don't change PYTHONPATH unless really needed in Python executors
  • fix a few Swagger2YAML converter crashes
  • fix handling of string body in Gatling script generator
  • handle download-link and version for JMeter to support nightly builds
  • don't subtract connect time from latency when reading JMeter results
  • handle iterations limit for LocustIO executor
  • support running LocustIO installed with Python 3
  • bump up Plugins Manager version to 1.3
  • handle log verbosity flag from config even better
  • read pytest assertion details when available
  • add ability to specify separate pass/fail criteria for cloud
  • add external-results-loader executor
  • do not force 'Generate parent sample' for all transactions in JMeter
  • cache JSR223 scripts in JMeter by default
  • ship older LocustIO in Docker image (0.8.1)

1.12.111 jul 2018

  • set LC_ALL in Docker image so JVM's file.encoding property will be UTF-8
  • support SSL certificates for proxies with settings.proxy.ssl-cert option
  • limit max variety for error messages with max-error-variety option
  • add Authorization Manager support for JMeter YAML scripting
  • add Once Only Controller support for JMeter YAML scripting
  • use special JMeter plugin for set-variables
  • do not crash if tool reported negative response time, warn the user about it and proceed
  • fix empty results read handling for Apiritif tests
  • fix JMeter installation under proxy
  • remove whole disabled node (and also its hashTree, i.e. included elements)
  • support conversion of variable parametrized LoopController
  • improve check of conversion controllers (supported/unsupported, disabled, included, etc.)
  • fix AssertionError: monitoring error for cloud tests
  • handle log verbosity flag from config better
  • use newer hdrpy lib to improve datapoint export performance
  • recognize JUnit test methods inherited from abstract class, filter out abstract class
  • don't fail if slave log is delayed for Locust.io distributed test
  • proxy2jmx - fixed download jmx file for new BlazeMeter API
  • extract all Java helper classes into separate repo
  • send Taurus engine-loop monitoring KPI to BlazeMeter
  • send settings.env into cloud test config
  • support 'tags' in Robot Executor (thanks to @ddhoot09)
  • use Sandbox as default location for BlazeMeter Cloud
  • handle body-file option on JMeter level instead of Taurus level
  • fix failure when settings.env variables are used in non-JMeter load settings

1.12.04 jun 2018

  • new frame management support was incorporated. Frames by id, name, relative parent and relative top (Selenium IDE and SideeX style)
  • drag and drop support added to Nose Request (Selenium)
  • go command added to Nose Request (Selenium)
  • storeTitle, storeString, storeTextBy, storeTitle and storeValueBy added to Nose Request (Selenium)
  • type command added to Nose Request (Selenium)
  • summary Labels added to Final Stats Reporting module
  • built-in new support module for generated selenium script called selenium_taurus_extras
  • services enhancing the Selenium executor can now be notified of test iteration progress
  • variable support added to Selenium (Nose)
  • new window management support was incorporated for selectWindow and closeWindow. Windows by name or sequential name incorporated (Selenium IDE and SideeX style)
  • fix 'NoneType' object is not iterable error for JMeter result reading
  • load TestNG classes from JAR only if testng config isn't provided
  • support for YAML files in utf-8 format
  • fix connectTime inserted into JMX for JMeter 2.11
  • add boundary extractor to JMeter YAML scripting
  • make ab's headers undestranding consistent with other executors
  • pass/Fail module is not possible to use as service anymore - removed old deprecation
  • use latest JMeter Plugins Manager 1.1 to speed-up startup
  • fix jmx2yaml crash when parsing LoopController with continue_forever set
  • proxy2jmx - because blazemeter backend has changed, we now first ask for the url of the jmx/smartjmx file and then downloading it like it used to be.
  • add LANG=en_US.UTF-8 and locales into Docker image
  • disable PYTHONPATH additions if interpreter is changed via config
  • fix swagger2yaml crash when found schema with type: file
  • fix swagger2yaml crash when an optional field is missing
  • for cloud test, if no sandbox location found and default-location is not valid, use first location by default
  • fix Gatling YAML scripts with CSV delimiter in data-sources
  • use TAURUS_DISABLE_DOWNLOADS env var to disable automated tool install
  • use more scope options for JMeter extractors
  • handle nested CSV sources in jmx2yaml
  • ignore KPI items from BlazeMeter cloud API if they have zero samples
  • add properties support for JUnit executor
  • add selective JUnit test running
  • use nice table for -locations and for final stats reporter

1.11.126 apr 2018

  • fix JMeter 4.0 crash on Windows when `JMETER_HOME` var is unset
  • add include-timers block to JMeter transactions
  • add match-no and use-namespaces support into extract-xpath for JMeter
  • fix crash on Python 2 when adding custom fields to kpi.jtl
  • write connect time to kpi.jtl by default in JMeter
  • use match-no=0 by default for JMeter JSONPath Extractor
  • do not generate sleep when think-time is zero for Nose executor
  • redo Apiritif code generation to split requests into separate methods
  • use master terminate API to shutdown not yet started BlazeMeter tests
  • fix the way default project is located for cloud tests
  • fix default pip inside Docker image to be pip2
  • fix rt field when exporting datapoints to JSON (convert msecs to secs)
  • add doc page with all config keywords we can find across doc pages.
  • support more error details internally, available for reporting services
  • add simple-output and smart-output option for Proxy2JMX service
  • don't limit env vars evaluating in scenarios blocks
  • evaluate only explicitly declared env variables across config
  • fix lost basePath when using --scenarios-from-paths in swagger2yaml
  • fix swagger2yaml: default-address should not contain endpoint path
  • SwaggerConverter.convert accepts fd
  • remove options object from SwaggerConverter
  • support auth (basic and API keys) for Swagger2YAML
  • swagger2YAML: Move base path to variable
  • support disabling explicit interpolation of parameters/headers
  • fix Gatling label groups read from simulation.log
  • support specifying properties for Gatling on scenario level
  • rename Gatling's `dir_prefix option into dir-prefix`

1.11.026 mar 2018

  • don't force applying defaults into effective configuration (huge internal impact)
  • use HDR histograms from hdrpy package for storing response times
  • add environment variable evaluation in strings
  • bump up default JMeter to 4.0 and Plugins Manager to 0.20
  • handle non-string JMeter headers
  • properly recover if JMeter has written non-UTF8 chars into JTL
  • fix errors.jtl reading on MacOS + Python 3
  • remote webdriver support added: selenium grid, appium, local or remote browsers or thirdparty compatible services
  • add capabilities for remote webdriver - browser, version, javascript, platform, os_version, selenium, device, app
  • new browsers: Chrome-Android and Safari-iOS with local appium or remote webdriver support
  • keysBy* - Special keys are allowed using the prefix KEY_ List: http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.keys
  • new Selenium actions were added: selectBy, doubleClickBy, mouseDownBy, mouseUpBy, assertTextBy, assertValueBy, assertTitle
  • add headless switch for selenium-based tests (Chrome and Firefox)
  • move assertions inside transactions in Apiritif codegen
  • add function translation for Apiritif executor: base64Encode, base64Decode, UUID and urlencode
  • set OBJCDISABLEINITIALIZEFORKSAFETY=YES env variable to fight MacOS problems with Apiritif
  • fix scenario-level timeout setting for Apiritif
  • fix POST requests with form data generation for Apiritif
  • inherit from unittest.TestCase when generating Apiritif script
  • support additional-classpath for Gatling
  • add swagger2yaml converter
  • updated Geckodriver to 0.20.0 and Chromedriver to 2.37
  • fix Python2 + Robot issue with test durations rounded to seconds
  • make npm not touch package.json and package-lock.json for Node.js tests
  • provide icon for Taurus status screen
  • fix singletone service parameters merging
  • write debug messages to log file in case -v used
  • Make it to pick BZA user's account by default when possible
  • use own test type for functional test in BZA
  • use name filter in BZA /projects call
  • retry requests to BZA test status in case of network failure
  • always include OPL into -locations dump for BZA

1.10.5 8 feb 2018

  • add `-lint functionality for checking Taurus configs for errors/typos
  • support recursive included-configs
  • support variables for Robot executor
  • unify environment variables setting for executors
  • call install-for-jmx on modified JMX instead of original
  • wait a bit for JMeter plugins manager to complete plugin installation
  • for cloud provisioned test, don't fail on variable file name in upload
  • don't fail if unable to get connections count in self-monitoring
  • ensure that loaded configuration is dict, throw appropriate exception otherwise
  • remove chrome profiler as it was outdated and unfixable
  • apply load settings for JMX later than modifications disable thread groups
  • support Runtime Controller and Interleave Controller in jmx2yaml
  • make Java executors to prefer user-specified JAR files over default ones
  • make TestNG runner to fail less on missing transitional dependencies

1.10.4 9 jan 2018

  • collect conn-all monitoring metric with the help of netstat utility (note that that introduces depepdency on net-tools package for Linux)
  • don't level down logging if settings.verbose is set
  • set write-xml-jtl=full in JMeter if settings.verbose is set
  • fix files upload resolve for JMeter variables
  • fix error when exception is not shown for failed JMeter run
  • fix JSONPath Extractor generated for JMeter
  • set default timeout for BlazeMeter integration to 30 seconds
  • support specifying cloud test by link to BM
  • fix launching cloud tests by id
  • fix crash when attempting to use external test as a cloud test
  • add send-report-email option for cloud tests
  • support account and workspace entities for cloud tests
  • use requests.Session for BZA requests (enabled keep-alive)
  • fix reporting for concurrent apiritif
  • fix duration reporting in final-stats for some cases
  • fix the way Taurus reads result file globally
  • optimize local resource monitoring collecting
  • fix mixed order of percentile and response code fields in final-stats's CSV report
  • make 'effective.json' file to be JSON-strict (no infinity literals)

Changelog for Year 2017