nexial-core 3.1 (2020-07-06)
Release 3.1
2020-07-06
General
Fixes
- fixed email notification template when execution terminates too abruptly.
- fixed SES-based email notification; possible SSL cert conflict with DocumentDB automation.
- nexial.cmd needs to handle spaces in the directory name.
- ensure Nexial doesn’t write too much data into a output excel cell (should be less than 32k).
- fixed issue of skipping the section command which has nested section.
Improvements
- Execution output will now show user response & comments provided in
stepandstep.inTimecommands. - Support for accessing response and comments within script execution using System variables
nexial.step.responseandnexial.step.commentrespectively. - Support for chrome/firefox web driver auto update when browser updated to lower version (i.e. not latest).
- If a section has inner section then inner steps will no longer needed to be counted towards the outer section step count. This will make one’s script authoring easier to maintain.
- Support for AWS SQS and S3 alternative such as LocalStack and MinIO.
- Standard log files will now automatically rollover at midnight.
- Additional Jenkins-specific information added to email notification, making it more useful.
- Make the timestamp on log files be more consistent. The unified format is now
yyyy-MM-dd HH:mm:ss.SSSS.
Batch Files
nexial-temp-clean.cmd|sh: fix logic to evaluate temp folders that are more than a day old.
System Variable
- new variable
nexial.step.commentadded. - nexial.trackErrors: NEW System variable to enable the explicit tracking
of step failures into a designated log file (
logs/nexial-execution-errors.log). - nexial.lastError: NEW System variable store the last FAIL message.
Nexial Filter
is readable-file: NEW filter to check for valid, readable file.is not readable-file: NEW filter to check for non-existent file.is readable-path: NEW filter to check for valid, readable path.is not readable-path: NEW filter to check for invalid or unreadable path.is empty-path: NEW filter to check for empty path (without files or sub-directories).is not empty-path: NEW filter to check for non-empty path (some either files or sub-directories).
[Built-In Function]
$(projectfile|executionErrorsAsHtml|tableOnly): NEW function to convert the “execution-failure” logs into an HTML.
base commands
- NEW clipboard-related commands has been added to copy to/from clipboard:
clearClipboard()- clear from current clipboard.copyFromClipboard(var)- copy from current clipboard.copyIntoClipboard(text)- copy/override into current clipboard.
localdb commands
queryAsCSV(var,sql): NEW command to transform query result to CSV.
rdbms commands
- supports
EXECandCALLSQL keywords. - improve console logs to aid in troubleshooting.
assertResultMatch(var,columns,search)- NEW command to verify that a query result contains certain data.searchparameter can be prefixed withREGEX:for regular expression check,CONTAIN:for substring check, or “as is” for equality check.assertResultNotMatch(var,columns,search)- NEW command to verify that a query result DOES NOT contains certain data.searchparameter can be prefixed withREGEX:for regular expression check,CONTAIN:for substring check, or “as is” for equality check.
ssh
sftpMoveFrom(var,profile,remote,local): supports wildcard moves (not recursive).sftpMoveTo(var,profile,local,remote): supports wildcard moves (not recursive).sftpCopyFrom(var,profile,remote,local): supports wildcard copy (not recursive) .sftpCopyTo(var,profile,local,remote): supports wildcard copy (not recursive).- `sftpDelete(var,profile,remote): supports wildcard delete and deleting a remote directory.
web commands
checkAll(locator,waitMs): NEW command to allow the checking of all checkbox elements that matched the specifiedlocatorand that are not yet “checked”. This is a modification to the previouscheckAll(locator)command (now removed).- minor script tweaked to improve stability.
uncheckAll(locator,waitMs): NEW command to allow the unchecking of all checkbox elements that matched the specifiedlocatorand that are “checked”. This is a modification to the previousuncheckAll(locator)command (now removed).- minor script tweaked to improve stability.
assertElementDisabled(locator): NEW command to check if a web element is disabled for interaction.- apply “preemptive JavaScript dialog check” prior to executing:
assertElementByAttributes(nameValues)assertElementByText(locator,text)assertElementCount(locator,count)assertElementDisabled(locator)assertElementEnabled(locator)assertElementPresent(locator)saveAttribute(var,locator,attrName)saveCount(var,locator)saveElement(var,locator)type(locator,value)waitForElementPresent(locator)waitForElementsPresent(locators)waitForPopUp(winId,waitMs)waitForTextPresent(text)
nexial.browser.postCloseWaitMs: logical change; now this System variable is only applicable when closing the last browser window, for performance reason.waitForElementPresent(locator): changed towaitForElementPresent(locator,waitMs)to improve control and flexibility.waitUntilVisible(locator,waitMs): NEW command to wait until a web element because visible.waitUntilHidden(locator,waitMs): NEW command to wait until a web element becomes hidden.waitUntilEnabled(locator,waitMs): NEW command to wait until a web element becomes enabled.waitUntilDisabled(locator,waitMs): NEW command to wait until a web element becomes disabled.
webalert
- code fix to improve handling of stale web elements or window.