v3.2.x

Edited on May 9, 2017

Release Notes

v3.1.1-v3.2.0

 

INTEGRATION

  • Major overhaul of the packaging of the various libraries we're exposing for extreme ease of use
    • Prepackaged Selenium 3.0 libraries and a structure for executing Selenium scripts in a massively concurrent way, available instantly upon installation
    • Many new default examples are preconfigured and can be used instantly as well, such as Demos of scripting languages, selenium scripts or grinder scripts
    • Platform-specific libraries are preconfigured and just require for the user to install the correct binaries matching their operating system (but we're attaching linux and windows archives to the release)
  • Support for execution of Grinder's HTTP API and of the TCPProxy generated scripts (minus a little bit of editing for compatibility)
  • Support for generic process execution (start and use any executable file as a keyword)
  • Support for most major JSR-223 languages via ScriptEngine : Javascript (Nashorn & Rhino), Scala, JRuby, etc

SECURITY

  • Login screen, authentication and data access protection
  • User management functionality with dedicated views for listing and password changing
  • SSL support at GUI level can now be activated

PERFORMANCE

  • Fixed 4 major issues which could appear under high loads (> 1000 KW/s)
    • DB CPU 100% : an issue where observing the test from the execution view would put the database under increasing pressure (aggregation), we've now implemented views for this
    • BindException/SocketException (connect) : an issue on the controller's side where HTTP connections would exhaust source ports, they're now being pooled through -Dhttp options
    • PluginManager contention : desynchronized a method in which threads would be waiting under high execution load
    • maxIdle groovy pool objects : fixed a high load scenario in which all of the pooled groovy scripts would be destroyed, with a very negative impact on the throughput
  • After fixing these issues, a benchmark showed that a single-controller setup could reach up to 2300 KW / second without sharding the database.
  • Fixed some minor performance issues
    • Initial distincts on various collections after restarting the controller were lasting too long and are now fast
    • Added a triple index on the reports collection to better support status filtering in the execution view.
  • Filtering can still be slow at times while a high load test is running (1000'ds of KW/s) and when massive amounts of reports are present, but it's lightning fast after the test ends.
  • Adjusted compound indexes for measurements (affects mostly RTM's sort performance) and reports (step status filtering)

EASE OF USE

  • Re-enabled "current operations" so that users know what they're waiting for when a given step is taking a while to complete
  • Implemented Object deletion confirmation
  • Implemented Copy-Paste buttons at top object levels
  • Implemented non-composite Sleep and Echo KW
  • Implemented checks at TestPlan/Composite level to prevent certain misuses
  • Added help view for a direct link to the documentation and to step's website
  • Added a Reports tab in the GUI so a to perform global (i.e cross-execution) queries on the database

ERROR HANDLING

  • Major improvements to error handling:
    • the vast majority of TECHNICAL_ERRORS should now be perfectly understandable, and readable straight from the GUI instead of the attached log fragment
    • when a artefact branch is failing, only the root cause will be displayed

GENERAL IMPROVEMENTS

  • Now exposing by default multiple new variables which can be needed by the user or administrator (Parameters.js)
    • keywords.calltimeout.default=180000
  • Reduced default timeout values to limit the need for restarts
    • grid.ttl & registrationPeriod
  • Temporarily disabling the Duration object which was dysfunctional, will be fixed and re-added in the next release
  • Increased default accepted Excel file size
  • Added default functionality to the AnnotatedMethodHandler where methods are searched directly by name when the Annotation argument "name" is not found -> makes configuring KW slightly easier
  • Added default values in For artefact
  • Read-only support for CSV and "Flat files" as a datapool for ForEach blocks (write support comming up, probably in the next release)
  • Merged all dev dependencies into the "single" dev jar

GENERAL BUG FIXING

  • Fixed a bug where composite KWs would collide on the output object
  • Fixed a bug where standalone KW execution would produce an exception
    ​https://github.com/denkbar/step/issues/1
    https://github.com/denkbar/step/issues/2
  • Fixed a bug where central variables could not be overwritten
  • Fixed a bug where a Keyword would not appear immediately in the list after creating it
  • Fixed a bug causing tests to get stuck in the ABORTING phase at times
    https://github.com/denkbar/step/issues/3

COMPATIBILITY NOTICE

  • step now requires Java 8

UPGRADE INSTRUCTIONS

  • Prior to starting the new controller, just drop the collection "controllerlogs" with the following mongodb command :
MongoDB shell version: 3.2.4
connecting to: test
MongoDB> use step
switched to db step
MongoDB> db.controllerlogs.drop()
true