nexial-core 2.4 (2019-07-03)
Release 2.4
2019-07-03
General
Fixes
- code fix to avoid modifying System properties while simultaneously reading such properties.
nexial-project.cmd: fixed theECHO is off.error.nexial-artifact-repair.cmd|sh: fixed invalid package reference.nexial-artifact-repair.cmd|sh: fixed formatting issue in data and script files.- Fixed issue of opening an output excel/execution report after execution even if
nexial.openResultornexial.openExecutionReportisfalse. - enforce no text-wrap on param values of a Nexial output
- perform data variable substitutions for external resources such as file.
- removed wrong deprecated logs from
desktop.useTable()
Improvements
- removed
java.awt.headless=truefrom .commons.cmd and .commons.ssh in order to support Robot-based type key - enhanced to support the rendering of multi-line or wrapped text in execution output (Excel).
- execution output color update for description column; now NOT as similar as a FAIL step
- minor console output enhancement to highlight (in blue) any execution abort messages and reasons.
- correct abort-related messaging to clarify execution flow and intent.
- The
execution_output.html, each plan file is now clearly separated into different section.- also added
scenario passedinexecution_output.htmlandemail_notification.htmlto capture total scenario passed for iteration, script and execution. - minor stylesheet updates to give more room for the display of scenario and activity names.
- also added
- handled special character which belong to MS windows character set but not ISO Latin causing problems in HTML.
System Variables
- [
nexial.scope.mailTo] HAS BEEN REMOVED AND REPLACED BYnexial.mailTo nexial.mailSubject: NEW System variable to custom email subject for post-execution email notificationnexial.mailHeader: NEW System variable to custom “header” content for post-execution email notificationnexial.mailFooter: NEW System variable to custom “footer” content for post-execution email notification
Nexial Expression
- NUMBER expression: handle number with other symbols such as comma and dollar sign.
- JSON expression: NEW operation
compact(removeEmpty), which is functionally equivalent to JSON »compact(var,json,removeEmpty). - TEXT »
replace(searchFor,replaceWith): support the replacement of empty text.
Flow Control
EndLoopIf(): Now supported early termination of a repeat-until loop without aborting the corresponding scenario.EndLoopIf(): fix code to break repeat-until loop without breaking the enclosing iteration, and vice-versa.- code fix: now Nexial favors “fail-immediate” over “fail-fast”.
base commands
assertArrayEqual(array1,array2,exactOrder): minor improvement on console message to reflect the result of the said assertion.startRecording(): prevent recording to commence if previous recording cannot be stopped.assertArrayNotContain(array,unexpected): support assertion against null/emptyarray.outputToCloud(resource): NEW command to support the transferring of output artifact to the cloud.
csv commands
compareExtended(var,profile,expected,actual): enhanced with configuration option to compare some fields as number, compare case-insensitively or before-compare trim.compareExtended(var,profile,expected,actual): enhanced to support numeric conversion of quoted text (e.g."1.05").compareExtended(var,profile,expected,actual): minor improvement to reduce runtime exceptions. Also enforce...compareExt.output.displayas required.
desktop commands
typeKeys: NEW command to automate a series ofkeystrokesto the current execution environment.
io commands
writeFile(file,content,append): supportcontentas a HTTP resource, in addition to file and direct content.writeFileAsIs(file,content,append): supportcontentas a HTTP resource, in addition to file and direct content.compare(expected,actual,failFast): supports comparison report render as HTML.- default CSS for the HTML comparison report available at https://nexiality.github.io/documentation/assets/report/io-compare-report.css
compare(expected,actual,failFast): supportexpectedandactualas a HTTP resource, in addition to file and direct content.
image commands
- saveDiff(var,baseline,actual): NEW command to compare images and store its metadata to var.
- crop(image,dimension,saveTo): Supports Asterisk(
*) for width and height if image width or height is unknown - resize(image,width,height,saveTo): Supports Asterisk(
*) for width and height if image width or height is unknown - compare(baseline,actual): DEPRECATED command use saveDiff(var,baseline,actual) instead
json commands
compact(var,json,removeEmpty): NEW command to compact JSON by removing null, empty text and empty nodes.
web commands
- stabilize available open window/tab while attempting to select one of them via its index.
- support enabling of chrome remote port (aka DevToolsActivePort) via new System variable
nexial.browser.chrome.remote.port. By default, this System variable is not enabled. The default Chrome’s DevToolsActivePort is12209or9555. This is needed when automating Electron application via chromedriver 4.x or above (set port to12209). - enable external chromedriver logging for chrome and electron automation via System variable
nexial.browser.logChrome,nexial.browser.logElectron, andnexial.browser.logElectronVerbose. - use ChromeDriverService so that chrome driver can reuse same port for driver-browser communication. This helps to stabilize chrome browser automation.
click(locator): honorsnexial.browser.forceJSClickwhen found during execution. This allows user more controls on how a web element should be clicked.clickAll(locator): NEW command to click on all web elements matchinglocator. This is useful to support the more modern web applications that use<DIV>elements to disguise as dropdown options.- for electron automation, automatically add chrome remote debugging port to
12209if the System variablenexial.browser.chrome.remote.portis not found.
xml commands
assertSoap(wsdl,xml): NEW command to validate SOAPxmlagainst the schema defined inwsdlassertSoapFaultCode(expected,xml): NEW command to assert the “fault code” in SOAP fault `xml.assertSoapFaultString(expected,xml): NEW command to assert the “fault text” in SOAP fault `xml.storeSoapFaultCode(var,xml): NEW command to extract and store “fault code” in SOAP faultxml.storeSoapFaultString(var,xml): NEW command to extract and store “fault text” in SOAP faultxml.assertCorrectness(xml,schema): enhance command to support automatic conformance retries over multiple schemas.assertSoap(wsdl,xml): fix to handle multiple and possibly conflicting namespace(s) within one XSD embedded in a WSDL. Also some code optimization.assertSoap(wsdl,xml): allow for empty<detail>node in SOAP Fault xml validation. Such condition will result in the corresponding step to SKIPassertSoap(wsdl,xml): code fix to read/parse same XML against multiple XSD.