nexial-core 2.7 (2019-10-07)
Release 2.7
2019-10-07
General
Fixes
- fixed code to support intra-execution changes of
nexial.scriptRef.*
data variables. - after importing desktop recording file to cloud (
nexial.outputToCloud
is set totrue
), Nexial will remove local video file to help keep local diskspace under control. - fixed code to support the creation and changes to System variables that are related to email notification during
execution. Previous code only read in these System variables the start of an execution. The impacted System variables
are namely
nexial.mailHeader
,nexial.mailFooter
,nexial.mailSubject
,nexial.mailTo
,nexial.enableEmail
. - fixed execution summary HTML template when custom header or footer is not found.
Improvements
- added checks to ensure that read-only variables aren’t overwritten via commands affect data variables
- added plan description in email notification html for plan execution.
System Variable
nexial.resolveTextAsURL
: NEW System variable to detect if a text parameter is a valid URL and if so, to download the content of that URL (GET) automatically. This supersedes the now-deprecated System variablenexial.expression.resolveURL
and applies beyond TEXT expression to areas such asws
,csv
,io
,json
,web
»executeScript(var,script)
andxml
commands. The default for this System variable isfalse
.nexial.resolveTextAsIs
: NEW System variable to disable the automatic data variable substitution on the text file it reads. Default value isfalse
- this means Nexial by default will automatically perform data variable substitution after it reads in the text file. This System variable supersedes the now-deprecatednexial.expression.OpenFileAsIs
System variable since it is no longer limited to Expression only.nexial.summary.header
: NEW System variable to allow user to add customized header (HTML) to execution summary.nexial.summary.footer
: NEW System variable to allow user to add customized footer (HTML) to execution summary.
Nexial Interactive
- Inspection now supports
SAVE(var)
andCLEAR(vars)
functionality. - support desktop recording from within Interactive session.
- Inspection supports the clearing of all user data variables (
CLEAR(*)
) - new option to reload script file, data file and
project.properties
(optionL
)
Built-in Functions
$(date|setDOW|date|day)
: added boundary checks to ensure meaningfulday
value. Only 0 through 7 is allowed for theday
parameter.
Nexial Expression
- fix code to support negative number parsing
- TEXT expression: code fix to handle escaped delimiter (meaning same character as
nexial.textDelim
) nexial.expression.resolveUrl
: change its default value tofalse
to minimize impact to existing automation. This will impact some (likely small subset) of automation that utilize TEXT expression to automate the fetching of HTTP-based resources.- TEXT »
xml
: NEW operation to transform a TEXT expression to a XML expression. - TEXT »
json
: NEW operation to transform a TEXT expression to a JSON expression. - CSV »
replaceColumnRegex(searchFor,replaceWith,columnNameOrIndices
:- the parameter
columnNameOrIndices
now can be expressed as*
to indicate ALL columns. - fixed error when working on a file with columns wrapped in double quotes.
- the parameter
- CSV »
saveRowData(rowIndex)
: save a row of CSV data as data variable by using the corresponding CSV header name as data variable name. - CSV »
removeRows(conditions)
: now supports the removal of one or more rows based on row index. Note that row index is 0-based and for CSV that is parsed withheader=true
, row 0 is the row AFTER the header. - CSV expression: fix issue dealing with content that contains delimiter or double quotes.
- CSV »
parse(configs)
: NEW config -keepQuote
- to keep or remove quote after parsing. This only apply to column values where the quote is not needed (such as those without delimiter). - CSV »
surround(parameters)
: NEW operation to surround all target columns with specified character(s). - TEXT » csv(positions): fixed parse logic to handle text with double quotes and text with delimiter (will be surrounded with double quotes).
- JSON »
compact(removeEmpty)
: fix code to remove null values.
base commands
stopRecording
: after video file is saved either to local path or cloud, its location is exposed asnexial.lastOutputLink
.
csv commands
compareExtended
: fix code to support negative number parsing
external commands
runProgram(programPathAndParams)
: support the execution of sub-shell with parameterized commands (*NIX and Mac only). The parameterized command should be wrapped with single quotes.runProgramNoWait(programPathAndParams)
: support the execution of sub-shell with parameterized commands (*NIX and Mac only). The parameterized command should be wrapped with single quotes.
image commands
nexial.image.trimColor
: Now supports RGB color code instead of color names.
io commands
saveMatches(var,path,fileFilter,textFilter)
: WASsaveMatches(var,path,filePattern)
. This command has been enhanced to support content-level filtering (REGEX-based) so that in addition to filtering by file name, last modified date and file size, one can also filter files by its content (support all text file, PDF and XLSX). This command now also support recursively scanning.assertPath(path)
: This command asserts that path exists and is readable by the run-user of the execution.
json commands
assertEqual(expected,actual)
: change the comparison logic and report format to improve accuracy and readability. The comparison now includes “objects of object” comparison.compact(var,json,removeEmpty)
: fix code to remove null values.
rdbms commands
runSQL(var,db,sql)
: remove any trailing semi-colon since many RDBMS vendor don’t support dangling semi-colon in query.
ws commands
nexial.ws.requestPayloadAsRaw
: NEW System variable to treat request payload as binary content.
web commands
- web »
closeAll
: A NEW System variable
nexial.browser.electron.forceTerminate
to forcefully terminate the AUT executable - i.e. the electron application as specified vianexial.browser.electron.appLocation
- after the underlying chromedriver shuts down or when web »closeAll
is invoked. saveDivsAsCsv(headers,rows,cells,nextPage,file)
: enable the use of(null)
,(empty)
or(blank)
forheaders
andnextPage
to omit the use of these parameters.saveTableAsCsv(locator,nextPageLocator,file)
: enable the use of(null)
,(empty)
or(blank)
fornextPage
to omit the use of this parameter.saveInfiniteDivsAsCsv(config,file)
: enable the use of(null)
,(empty)
or(blank)
forheader-cell
to omit the use of thisconfig
.saveInfiniteTableAsCsv(config,file)
: enable the use of(null)
,(empty)
or(blank)
forheader-cell
to omit the use of thisconfig
.nexial.web.highlight
: fixed error when target element doesn’t have anystyle
attribute- initial commit for browser-side performance metric collection logic. Not yet ready for prime time; only metrics collection for now.
assertAttributeContain(locator,attrName,contains)
: renamed fromassertAttributeContains(locator,attrName,contains)
(grammatically displeasing).- Browser Performance Metrics: NEW feature in Nexial to capture browser performance metrics as part of Web automation. Collected data will be presented as HTML at the end of execution.