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 argsandJAVA_OPTis included in output file#summarysheet. 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.logunder the output directory. For more details, visit Time Tracking page for more details and customization options.
Execution Dashboard
- Fixed code to promote
buildnumin 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 totrueto enable.nexial.timetrack.trackScript: log start/end and elapsed time of a script. Set this totrueto enable.nexial.timetrack.trackIteration: log start/end and elapsed time of an iteration. Set this totrueto enable.nexial.timetrack.trackScenario: log start/end and elapsed time of a scenario. Set this totrueto 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): theincondition will now consider an empty string as match to an empty filter. Thenot incondition 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 forsearchForregular 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|shon 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”.
firefoxis 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 oftextin 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)