nexial-core 1.1 (2018-05-02)
Release 1.1
2018-05-02
Please Note
If you have test scripts created in Sentry, be sure to bin/sentry2nexial.cmd
script for your project PRIOR to
using with Nexial.
General
- Now supports BAI2 Expression to parse and validate text files with
BAI2
file format. - Upgraded to Kotlin 1.2.31
- Enabled
project.properties
setting to take effect even when no site-wide Nexial setting jar is found. - Performance improvement on reading Excel files:
- Delete “temp” Excel files ONLY if they were opened as duplicates (mostly Windows).
- Implemented functional calls to eliminate excessive worksheet reads.
- Add new System variable,
nexial.lastOutcome
, to capture the link to the output generated by a command. Such output are generated shown as link subsequent to the associated command in the output file. With this new System variable, it is possible to read and automate on the content of the same file. - Updated Email Notification code to send out email notification at the end of an execution. To enable notification, be sure to read up on nexial.enableEmail.
- Output-to-Cloud fixes and enhancements:
- Add additional checks to ensure required settings are appropriately configured before use.
- Any “output to cloud” code routine could fail-fast if improper/missing S3 connectivity is encountered.
- Logging:
- Reduce log verbosity for 3rd-party libraries.
- Implemented “delayed” logging strategy so that more logs can be captured in execution-specific log files.
- When Nexial first started, all file-based logs are pointing to
${java.io.tmpdir}
. - When the “output” directory is determined, file-based logs are redirected to
${out}/logs
directory.
- When Nexial first started, all file-based logs are pointing to
- Unit testing:
- Added/fixed multiple unit tests.
- Skip pause when running Nexial under unit testing.
- Utilities/batch files:
- Fixed the “extra line created” issue while performing data variable renaming via
bin/nexial-variable-update.[sh|cmd]
. - Enhanced
bin/*.[sh|cmd]
scripts so that they can be run outside of thebin/
directory. - Enhanced
bin/nexial-project.[sh|cmd]
to support project directory not found under the standardC:\projects\
or/Users/<username>/projects
directory.
- Fixed the “extra line created” issue while performing data variable renaming via
Nexial Filter
- Nexial Filter now supported in flow control as well as CSV Expression (since 1.0).
- Added more conditions to Nexial Filter. The complete list is:
>
,>=
,<
,<=
,=
,!=
,is
/in
,is not
/not in
,contain
,start with
,end with
,is undefined
,is defined
,has length of
,is empty
,is not empty
,match
(regex).
- Nexial filter now uses pipe (
|
) as separator for item listing, which should be enclosed in[...]
unless there’s only 1 item.
Nexial Expression
- Uniformed handling of numeric values:
- Defaults to using scale of 25 (i.e. 25 decimal places) when dealing with double.
- Defaults to rounding “up” when dealing with double.
- Currently applied to LIST and NUMBER.
[BAI2 Expression]
- BAI2 Expression is a new expression added to support parsing and validating text files with
BAI2
file format. - Supports files in compliance with BAI Standard Specifications.
[CSV expression]
- CSV »
htmlTable
: NEW operation to render CSV content into a HTML table. - CSV »
groupCount(columns)
: NEW operation to create new CSV with count information of columns with same data. - CSV »
groupSum(columns)
: NEW operation to render new CSV with sum information grouped by columns with same data. - CSV »
removeColumns(namesorindices)
: now supports one or many columns referenced by name or index (zero-based); separated by comma.
[EXCEL expression]
- fixed
clear((range))
; code was previously missing last column.
[NUMBER expression]
- fixed NUMBER expression when dealing with whole number. Previous implementation “eagerly” converts whole number to decimal number, but this is now fixed.
base commands
- base »
verbose(text)
- Reduced unnecessary console logging.
- Add original script parameter as comment when generating output for this command.
- base »
macro(file,sheet,name)
- Honors the flow control defined at the calling scripts. If the step that invokes the macro call has flow control(s) defined, those flow control(s) will impact to the import macro steps.
- base »
clear(vars)
- NEW command to automate the clearing of one or more variables. Useful for managing memory footprint and to reduce variable conflict.
csv commands
- csv »
compareExtended(var,profile,expected,actual)
now supports “ignore fields” so that certain fields can be ignored for comparison (and still be included in the comparison result).
desktop commands
- desktop »
getRowCount(var)
renamed to desktop »saveRowCount(var)
to improve readability. - desktop »
scanTable(var,name)
renamed to desktop »useTable(var,name)
to improve readability.
external commands
- Expose the filename of the output file generated by running
external » runProgram(programAndParams
command via a system variablenexial.external.output
.
jms commands
- Fixed bad reflection class in
WebSphereMQJmsClientConfig
. BothBeanUtils
andMethodUtils
failed since they mistakenly took theMQConnectionFactory
as aMap
instance.
mail commands
- Updated command to use
profile
for configuring mail connectivity. This change now allows for multiple mail server configurations within one execution.
number commands
- number »
assertBetween(num,lower,upper)
renamed to number »assertBetween(num,min,max)
to improve readability.
step commands
- step »
observe(prompt)
: fixed output to render response as second parameter.
web commands
- shipped with
geckodriver 0.20.1 (Firefox):
- Avoid attempting to kill Firefox process that has stopped.
- With the change to allow Firefox enough time to shut down in 0.20.0, geckodriver started unconditionally killing the process to reap its exit status. This caused geckodriver to inaccurately report a successful Firefox shutdown as a failure.
- The regression should not have caused any functional problems, but the termination cause and the exit status are now reported correctly.
ws commands
- fixed ws »
oauth()
to support OAuth response that contains multiple entitlements, products, etc. (essentially JSON array).