nexial-core 3.6 (2021-01-21)
Release 3.6
2021-01-22
General
Fixes
- fixed “quiet mode” (
nexial.quiet) so that console logs will be drastically reduced. - correctly read
nexial.mail.smtp.fromfrom command line or nexial-setup. nexial-setup: backward supports for older Java (version 8-15).- fixed code not to fire “fail” event when evaluating an assert command within
repeat-untilto evaluate the continuation of a loop. - fixed minor coding issue when updating a step result when its corresponding parameter(s) resolve to a link.
- fix output for
stepandstep.inTimecommands to capture user input. - fix
stepandstep.inTimecommands for repeated use within an Interactive session.
Improvements
project.properties: supports environment-specific project.properties via runtime environment variablenexial.env.- when environment-specific project.properties is specified, the default
project.propertieswill be loaded first
- when environment-specific project.properties is specified, the default
- minor log reformatting to improve readability.
- PolyMatcher: NEW expressive comparison technique to perform inexact text comparison. Currently supports
REGEX:for regular expression based matching,CONTAIN:andCONTAIN_ANY_CASE:for partial text matching,START:andSTART_ANY_CASE:for “starts-with” text matching,END:andEND_ANY_CASE:for “ends-with” text matching. Will be added to more commands and expressions in the future.- now supports
EXACT:syntax for “equality matching”.
- now supports
- adding logging for clarity
System Variable
nexial.io.matchRecursive: NEW System variable to determine if Nexial should scan recursively the target directory when invoking io »saveMatches(var,path,fileFilter,textFilter).- also impacts io »
count(var,path,pattern).
- also impacts io »
nexial.io.matchExact: NEW System variable to determine if the regex-based matching logic should match “partially” or “exactly”. Usetrueto perform match. Default isfalse. This impact the following commands:
Expression
- LIST »
index(item): now supports PolyMatcher.
Function
$(format|phone|text): improvement to accept phone number with non-numeric characters such as-,.,(and).
base commands
assertMatch(text,regex): now supports PolyMatcher.
desktop commands
clickMenu(menu): avoid unnecessary error when clicking on a menu item.- support the use of
{DEL}as an alternate/shortcut to{DELETE}.
json commands
assertValue(json,jsonpath,expected): supports PolyMatcher for inexact/expressive text comparison.
macro commands
expects(var,default): fixed logic to use default when specifiedvarhas no value.
mail commands
compose(var,config,value): support adding new files as attachments, instead of replacing them.clearComposed(var): no longer cause FAIL when specified variable is not found.
rdbms commands
assertResultMatch(var,columns,search): supports PolyMatcher for inexact/expressive text comparison.assertResultNotMatch(var,columns,search): supports PolyMatcher for inexact/expressive text comparison.
ssh commands
- added additional logging for better RCA
web commands
- instructs chrome browser not to show “Save Password” prompt during automation.
- instructs firefox browser not to show “Save Password” prompt during automation.
assertText(locator,text): supports PolyMatcher for inexact/expressive text comparison.assertValue(locator,value): supports PolyMatcher for inexact/expressive text comparison.assertAttribute(locator,attrName,value): supports PolyMatcher for inexact/expressive text comparison.assertNotText(locator,text): supports PolyMatcher for inexact/expressive text comparison.deselectMulti(locator,array): supports PolyMatcher for inexact/expressive text comparison.select(locator,text): supports PolyMatcher for inexact/expressive text comparison.selectMulti(locator,array): supports PolyMatcher for inexact/expressive text comparison.assertCssPresent(locator,property,value): supports conversion of HEX color to RGBA form.- geo location support via
nexial.browser.geolocation. - geo location faking via
nexial.browser.geolocation.longitudeandnexial.browser.geolocation.latitude
webalert commands
- allow
nexial.lastAlertTextto be removed during automation.
tn.5250 commands
- implement retry logic when scanning for nested screen
- support PolyMatcher for inexact/expressive text comparison:
assertFieldMatch(label,expects)assertFieldNotMatch(label,expects)assertMessageMatch(expects)assertMessageNotMatch(expects)assertTableMatch(column,text)assertTableNotMatch(column,text)assertTitle(expects)saveTableMatchCount(var,column,text)typeOnMatchedColumns(matches,keystrokes)typeOnMatchedRow(column,match,keystrokes)
waitUntilTextPresent(text,maxWaitMs): NEW command to wait until specified text is found on current TN5250 screen.waitUntilTitlePresent(title,maxWaitMs): NEW command to wait until specified text is found on current TN5250 screen title.waitUntilMessagePresent(message,maxWaitMs): NEW command to wait until specified text is found on current TN5250 status message.inspectScreen(): add pre-fetch wait time (1.5second) prior to render TN5250 screen data.