nexial-core 1.7 (2018-11-13)
Release 1.7
2018-11-13
General
- enhancement to Nexial’s screen capturing capability. Now screenshot can be taken even if the current command is not one dealing with UI. Previously only web and desktop commands can be used to capture screenshot (of the current test step). With this new change, Nexial will use the latest UI-related command as reference point to capture screenshot.
- enhancement to how Nexial resolves scripts and data files both for script and plan execution. Also better error messages are now in place.
- enhance execution output to “paint” description column as red if the corresponding step fails.
- optimization of Nexial internal processing and revamp Excel handling to improve performance.
- further reducing startup time by moving some Excel style initialization towards later
- minor reduction of console logging to improve readability
- enhancement to console logging - reduce verbosity to improve readability
- enhancement to console logging - WE’VE GOT COLORS!
- enhancement to console logging - log FAIL steps as ERROR level
- code fix to include data variables from project.properties and System properties to execution output
- code fix against edge cases on infinite loop; now both
null
and(null)
values are treated asNULL
values. - fixed overflow condition when generating new command-listing JSON that has more than 26 command types.
- code fix to restore smtp capability
- enhanced nexial mailer to handle inflight mail configuration changes (e.g. between iterations) and to support AWS SES.
Nexial Interactive
- 1st version of Nexial Interactive now available! Only basic functionality tested; please kindly report issues on GitHub.
- added color output on console for Nexial Interactive; more to come.
- support options to assign all steps
- support options to open script and data file
- support reading of scenario from command line
Built-in Function
$(date|format|date|fromDate|toDate)
: NEW time format -base10time
- to support conversion of time to/from an existing time format, such asHH:mm:ss
, to/frombase10time
format. As such we can convert time information from the conventionalHH:mm:ss
into a base-10 decimal number.$(execution|meta|nexial)
: display current Nexial version.$(execution|meta|java)
: display current Java version.
System variables
nexial.imageDiffColor
: NEW System variable to define color for highlighting difference when comparing two images.nexial.printErrorDetails
- NEW System variable to control the printing of underlying Java exception when such is thrown.nexial.var.defaultAsIs
- NEW System variable to control unresolved data variable during substitution.
aws.ses commands
sendHtmlMail(profile,to,subject,body)
: NEW command to send email via AWS SES.sendTextMail(profile,to,subject,body)
: NEW command to send email via AWS SES.
base commands
assertArrayContain(array,expected)
: NEW command to assert that all the items inexpected
exists inarray
.expected
can either be a single item or multiple items separated bynexial.textDelim
, as the case forarray
. The items inexpected
need not be of the same order as those inarray
.assertArrayNotContain(array,unexpected)
: NEW command to assert that all the items inunexpected
DO NOT exist inarray
.unexpected
can either be a single item or multiple items separated bynexial.textDelim
, as the case forarray
.- code fix: consider “null=null” and “empty=empty” when comparing arrays
- reduce some of more “cryptic” console output passed down from Selenium 2 implementation.
desktop commands
- fixed rare condition where Winium is invoked where it should not.
image commands
-compare(baseline,actual)
: modified command to compare two images and
highlighting difference with rectangle in new image.
-colorbit(image,bit,saveTo)
: NEW command to convert image color bit.
io commands
base64(var,file)
: read and encode file content as base64.
json command
assertValues(json,jsonpath,array,exactOrder)
: code fix to properly consider null values.assertValues(json,jsonpath,array,exactOrder)
: enhanced to support better comparison-equivalent logic (like that ofassertEqual(expected,actual)
).assertEqual(expected,actual)
): enhanced with better message to aid in troubleshooting.
ssh commands
- support empty password (use
(empty)
) for cases where the target SSH server allows for it.
step commands
- update console display of command prompt across all step commands to improve readability.
validate(prompt,responses,passResponses)
: enhanced to capture user’s comment (optional) after providing validation response.perform(instructions)
: enhanced to capture user’s comment (optional) after the instructed actions are performed.
web commands
- support configuration to request browser to accept invalid SSL certificate (might be useful for intranet testing).
- support screenshot when JavaScript dialog (modal) is present. When JavaScript dialog is found, instead of Selenium’s screenshot capability, Nexial will resort to Java’s fullscreen capture.
- initial support for CrossBrowserTesting (alternative to BrowserStack). Note: Not all functionality are tested yet.
- disable the checking of browser stability via page source when JavaScript dialog is present.
- BrowserStack support:
- disable browser window maximizing for mobile web automation
- update code to support mobile web testing via browserstack.
- support autodownload and execution of BrowserStackLocal, if
nexial.browserstack.enablelocal
orbrowserstack.local
is set totrue
- support auto download/start/shut down of BrowserStackLocal, which is needed to test corporate’s private and internal servers, alongside public URLs, using the BrowserStack cloud, which has support for firewalls, proxies and Active Directory.
- turn off “page source support” mode for browser stack automation to speed up execution.
- support the toggling of “real_mobile” for browser stack automation via
browserstack.real_mobile
- default to
nexial.browser.windowSize
whenbrowserstack.resolution
data variable is not available. - automatic download/install/invocation of BrowserStackLocal executable when
browserstack.local
is set totrue
- automatic termination of BrowserStackLocal when execution ends.
- disabling the setting of browser window size if mobile web testing is in effect.
- avoid setting empty or invalid browser when executing mobile web testing; device default (iOS->Safari, Android->Chrome, etc.) will be enforced during mobile web testing.
- fixed window positioning issue when running Safari.
- forcefully delay window resizing on Safari until after a URL is invoked; this fixed the error “A request to use a window could not be satisfied because the window could not be found.”
- enable network and console logging on BrowserStack when
browserstack.debug
is set totrue
. - support execution status reporting back to BrowserStack when a script has completed.
- Safari support:
- prior to highlighting, scroll the target element so that it is visible
- handle UnhandledAlertException when a JavaScript dialog is present during automation.
- fixed error when setting browser window size
- remove scrollbar during screenshots for chrome headless. Chrome browser still exhibit scrollbar during screen capturing.
select(locator,text)
: now supports selection based on regular expression. UseREGEX:
as prefix to enable regex-based text selection. Note that for SELECT element that supports only single selection, only the first match will be selected.deselect(locator,text)
: NEW command to deselect (unselect?) from a SELECT element based ontext
. For regex-based deselect, addREGEX:
prefix totext
.clickWithKeys(locator,keys)
: NEW command to click on target with the keystrokes like{CONTROL}
,{SHIFT}
specified viakeys
.- update to Selenium 3.141.0
(should be 3.14.1?). Significant changes include:
- Beta commands in SafariDriver for opening a new window or tab.
- Clean up of internal of
Select
element wrapper (#6501) - Acknowledge that Mojave is a
Platform
(#6552) - Fixed WebDriverBackedSelenium servlet by registering a session finalization listener.
- Prepended command names in https error response reports (#6321)
- Removed the apache-backed httpclient.
- Added a basic ServiceBuilder for Internet Explorer (#6181)
- web »
open(url)
: code fix to honor fail-immediate condition. openIgoreTimeout(url)
: NEW command to open to a URL and tolerate page load that might extent between defined timeout (i.e.nexial.web.pageLoadWaitMs
).
ws commands
upload(url,body,fileParams,var)
: NEW command to upload one or more files as multipart-data, along with other request parameters, to specified endpoint (url
).