…or so we’re told.
Updates to state machines, improved developer experience, scenario metadata (more on this soon!) and improved robustness and error reporting. Among other improvements. Yes, yes, we’ve been busy. Some of the features here were suggested by users, which is always exciting for us (BTW we have a FEEDBACK FORM, keep those coming!).
So here’s what’s new:
Big
- Test scenarios now have metadata tags. This lays the infrastructure for a lot of analytics we’ll start to roll out soon, but you can already start using it for giving scenario names and marking them with tags.
- New default config file lists common options, so no need to look up common config keys. But just in case, there’s also a link to the config reference there, so when if you want to search for a specific key, the reference is only a click away.
- State machines
- State handlers reuse: state handlers (functions executed when a state machine arrives at a given state) now get a reference to the machine and state. This means you can re-use handlers across states, e.g. when several states use an algorithm that can take state name as a parameter (thanks, Miriam!).
- It is now possible to connect multiple states using a single
sm.connect().to()
statement (Thanks, Miriam!). - When a state handler registration overwrites an existing registration, Provengo prints a warning. Because most of the time that’s a bad sign.
- Provengo now prints the source location of errors and warnings. Much easier to know where to fix things now.
- Re-implemented the Selenium library so it uses standard event objects now.
- Improved report UI.
- Improved HTML test book UI.
- Documentation improvements.
Small
- When
create
is invoked with no directory, it created a new directory for the model, using the model’s name. - On the run parameters front,
analyze.max-depth
is used solely for limiting the depth a model analysis would go into.scenario.max-length
, on the other hand, is used for limiting the length of sampled scenarios, or scenarios executed using the:random
run source. - When the requested ensemble size is bigger/equal to the sample size, just use the entire sample and print a warning (rather than report an error and break the build). Thanks, Miriam!
- Timing information in logs, so you know how long each automation action was.
- Stricter type checks in Selenium.
Fixed
- Solved a few crashes caused by uncommon usages of JavaScript objects.
Selenium
library: Fixed issues with thequit()
command (thanks, Ramesh!).- Improved libraries robustness.
- Fixed text assertions serialization issue.
- Fixed selenium scroll issue.
- Various other fixes and cleanups.