nexial-core 1.4 (2018-08-07)
Release 1.4
2018-08-07
General
- Upgraded to Kotlin 1.2.51
- Issue #7: Script reference information such as
Data File
,DataSheet(s)
,runtime args
andJAVA_OPT
is included in output file#summary
sheet. Visit Understanding Project Structure to see a sample output file. - Support for data variable expansion in “description” columns of test scripts. It is now possible to specify data
variable using the
${...}
form in both the “description” column in the script header (Cell A2) and the “description” columns in test steps (Row B). Nexial will expand these${...}
into actual value during output generation. Visit Understanding Project Structure to see a sample output file. - Better error message when not using the minimum version of Java with Nexial. The minimum version of Java required is 1.8.0_151.
- Prevent deleting of local log files when “output to cloud” is enabled.
Flow Control
TimeTrackStart(label)
andTimeTrackEnd()
: NEW flow control to mark start/end time of any arbitrary group of steps. Via this new flow control, it is possible for one to mark the start and stop time between 2 test steps. The timing information is logged separately as pipe-delimiter text file in thelog/nexial-timetrack.log
under the output directory. For more details, visit Time Tracking page for more details and customization options.
Execution Dashboard
- Fixed code to promote
buildnum
in the Execution Summary section of the execution output.
Event Notification
- NEW event handling to mark the elapsed time of a well-defined events:
nexial.timetrack.trackExecution
: log start/end and elapsed time of an execution. Set this totrue
to enable.nexial.timetrack.trackScript
: log start/end and elapsed time of a script. Set this totrue
to enable.nexial.timetrack.trackIteration
: log start/end and elapsed time of an iteration. Set this totrue
to enable.nexial.timetrack.trackScenario
: log start/end and elapsed time of a scenario. Set this totrue
to enable.- For more details, visit Time Tracking page for more details and customization options.
Nexial Expression
TEXT expression
removeRegex(regex)
: NEW operation to remove character(s) that matches user-suppliedregex
.retain(keep)
: NEW operation to retain only the character(s) that in the user-suppliedkeep
.retainRegex(regex)
: NEW operation to retain only the character(s) that matches user-suppliedregex
.
JSON expression
addOrReplace(jsonpath,input)
: NEW operation to supports adding or replacing elements in existing JSON document/array.
CSV expression
- For
fetch(conditions)
,filter(conditions)
andremoveRows(conditions)
: thein
condition will now consider an empty string as match to an empty filter. Thenot in
condition will not consider an non-empty string as match to an empty filter (as in “ this string is not part of empty filter”). retainColumns(columnNamesOrIndices)
: NEW operation to retain only the specified columns (by name or by position, separated by commas) in a CSV. Think of this operation as the opposite ofremoveColumns(namesOrIndices)
.replaceColumnRegex(searchFor,replaceWith,columnNameOrIndex)
: NEW operation where the specified column (by name or by position), search forsearchFor
regular expression will be performed and all matches be replaced withreplaceWith
. Regex group supported.distinct
: NEW to remove all duplicate rows from CSV.parse
: new option added (trim
) to retain leading/trailing whitespaces from parsed value. By default, trimming is in effect.- Code fix to honor pipe character (
|
) as delimiter
csv commands
- Fixed parsing error found in
csv »
compareExtended(var,profile,expected,actual)
that otherwise prevent parsing of files with multiple characters that might be candidate as field delimiter.
number commands
- Update code to align with documentation; command parameters are now correctly named.
- You will likely need to run
bin/nexial-script-update.cmd|sh
on your project, and might need to update your scripts accordingly to match the command parameter changes. assertEqual(value1,value2)
now correctly named asassertEqual(num1,num2)
average(variableName,array)
now correctly named asaverage(var,array)
ceiling(variableName)
now correctly named asceiling(var)
)decrement(variableName,amount)
now correctly named asdecrement(var,amount)
)floor(variableName)
now correctly named asfloor(var)
)increment(variableName,amount)
now correctly named asincrement(var,amount)
)max(variableName,array)
now correctly named asmax(var,array)
min(variableName,array)
now correctly named asmin(var,array)
round(variableName,closestDigit)
now correctly named asround(var,closestDigit)
- You will likely need to run
json command
- Issue #4:
addToReplace
; NEW command to add or replace JSON element in existing JSON.
web commands
- Support for Microsoft Edge browser for Windows 10.
- Note: XPATH locator is not supported in the 10240 build of Windows 10/Edge/webdriver
- known issues: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4468545/
- Automatic webdriver download/update now available:
- Nexial no longer ships with any webdriver. Instead now it automatically downloads the webdriver according to
what’s specified in
${nexial.browser}
and that which is appropriate for the operation system (that executes Nexial). - Refer to WebDriver Support for more details.
- Nexial no longer ships with any webdriver. Instead now it automatically downloads the webdriver according to
what’s specified in
- Supports tag-based locator using
tag=
prefix. - Browser-specific support on “switch-window” capability. Currently Edge does not support “switch-window”.
firefox
is set as default browser ONLY when a web command is invoked. This fixed some confusion regarding browser initialization in the context of iteration and plan.assertTextMatches(text,minMatch,scrollTo)
- NEW command to assert the minimum number of occurrence oftext
in current web page, and optionally scroll to the specified instance.- Fixed error when automating scrolling on an element that might not support scrolling (e.g.
window
,document
,html
) - Fixed missing byte array to string conversion in
web »
savePageAs(var,sessionIdName,url)