nexial-core 1.0 (2018-03-30)
Release 1.0
2018-03-30
First release of Nexial Automation Platform.
For those familiar with Sentry, this would be Sentry v1.6. If you have
test scripts created in Sentry, be sure to bin/sentry2nexial.cmd
script for your project PRIOR to executing
with Nexial.
If this is your first introduction to Nexial – WELCOME!
Supported commands
Here is the list of supported commands separated by their command type:
[aws.s3]
assertNotPresent(profile,remotePath)
assertPresent(profile,remotePath)
copyFrom(var,profile,remote,local)
copyTo(var,profile,local,target)
delete(var,profile,remotePath)
list(var,profile,remotePath)
moveFrom(var,profile,remote,local)
moveTo(var,profile,local,target)
[base]
appendText(var,appendWith)
assertArrayEqual(array1,array2,exactOrder)
assertContains(text,substring)
assertCount(text,regex,expects)
assertEmpty(text)
assertEndsWith(text,suffix)
assertEqual(expected,actual)
assertNotContain(text,substring)
assertNotEmpty(text)
assertNotEqual(value1,value2)
assertStartsWith(text,prefix)
assertTextOrder(var,descending)
assertVarNotPresent(var)
assertVarPresent(var)
failImmediate(text)
incrementChar(var,amount,config)
macro(file,sheet,name)
prependText(var,prependWith)
repeatUntil(steps,maxWaitMs)
save(var,value)
saveMatches(text,regex,saveVar)
saveReplace(text,regex,replace,resultVar)
split(text,delim,saveVar)
startRecording()
stopRecording()
substringAfter(text,delim,saveVar)
substringBefore(text,delim,saveVar)
substringBetween(text,start,end,saveVar)
verbose(text)
waitFor(waitMs)
- fixed NPE when secret file is not found in classpath
- remove direct spring dependency from S3-support code
- support externally controlled “nexial.properties” to be loaded to control resource configuration (S3, email, etc.).
Not required unlessnexial.outputToCloud
is set totrue
[csv]
compare(expected,actual,failFast)
compareExtended(var,profile,expected,actual)
convertExcel(excel,worksheet,csvFile)
[desktop]
assertAttribute(locator,attribute,expected)
assertChecked(name)
assertDisabled(name)
assertElementPresent(name)
assertEnabled(name)
assertHierCells(matchBy,column,expected,nestedOnly)
assertHierRow(matchBy,expected)
assertListCount(count)
assertLocatorNotPresent(locator)
assertLocatorPresent(locator)
assertMenuEnabled(menu)
assertModalDialogNotPresent()
assertModalDialogPresent()
assertModalDialogTitle(title)
assertModalDialogTitleByLocator(locator,title)
assertNotChecked(name)
assertSelected(name,text)
assertTableCell(row,column,contains)
assertTableColumnContains(column,contains)
assertTableContains(contains)
assertTableRowContains(row,contains)
assertText(name,expected)
assertWindowTitleContains(contains)
clear(locator)
clearCombo(name)
clearModalDialog(var,button)
clearTextArea(name)
clearTextBox(name)
clickButton(name)
clickByLocator(locator)
clickCheckBox(name)
clickExplorerBar(group,item)
clickFirstMatchRow(nameValues)
clickFirstMatchedList(contains)
clickIcon(label)
clickList(row)
clickMenu(menu)
clickOffset(locator,xOffset,yOffset)
clickRadio(name)
clickTab(group,name)
clickTableCell(row,column)
clickTableRow(row)
clickTextPane(name,criteria)
clickTextPaneRow(var,index)
closeApplication()
collapseHierTable()
editHierCells(var,matchBy,nameValues)
editTableCells(row,nameValues)
hideExplorerBar()
login(form,username,password)
maximize()
minimize()
resize(width,height)
saveAllTableRows(var)
saveAttributeByLocator(var,locator,attribute)
saveElementCount(var,name)
saveFirstListData(var,contains)
saveFirstMatchedListIndex(var,contains)
saveHierCells(var,matchBy,column,nestedOnly)
saveHierRow(var,matchBy)
saveListData(var,contains)
saveLocatorCount(var,locator)
saveModalDialogText(var)
saveModalDialogTextByLocator(var,locator)
saveProcessId(var,locator)
saveTableRows(var,contains,csv)
saveTableRowsRange(var,beginRow,endRow,csv)
saveText(var,name)
saveTextPane(var,name,criteria)
saveWindowTitle(var)
selectCombo(name,text)
showExplorerBar()
toggleExplorerBar()
typeAppendTextArea(name,text1,text2,text3,text4)
typeAppendTextBox(name,text1,text2,text3,text4)
typeByLocator(locator,text)
typeTextArea(name,text1,text2,text3,text4)
typeTextBox(name,text1,text2,text3,text4)
useApp(appId)
useForm(formName)
useHierTable(var,name)
useList(var,name)
useTable(var,name)
waitFor(name,maxWaitMs)
waitForLocator(locator,maxWaitMs)
[excel]
clear(file,worksheet,range)
read(file,worksheet,range,var) - to be deleted
saveData(var,file,worksheet,range)
saveRange(var,file,worksheet,range)
write(file,worksheet,startCell,data)
writeAcross(file,worksheet,startCell,array)
writeDown(file,worksheet,startCell,array)
writeVar(var,file,worksheet,startCell)
[external]
[image]
compare(baseline,actual)
convert(source,format,saveTo)
crop(image,dimension,saveTo)
resize(image,width,height,saveTo)
[io]
assertEqual(file1,file2)
assertNotEqual(file1,file2)
assertReadableFile(file,minByte)
compare(expected,actual,failFast)
copyFiles(source,target)
count(var,path,pattern)
deleteFiles(location,recursive)
filter(source,target,matchPattern)
makeDirectory(source)
moveFiles(source,target)
readFile(var,file)
readProperty(var,file,property)
saveDiff(var,expected,actual)
saveFileMeta(var,file)
saveMatches(var,path,filePattern)
unzip(zipFile,target)
validate(var,profile,inputFile)
writeFile(file,content,append)
writeProperty(file,property,value)
zip(filePattern,zipFile)
[jms]
receive(var,config,waitMs)
send(config,messageId,payload)
- added “missing client connection jar” logic so we can provide instruction for missing client jars
- remove vendor-specific code (use Java reflection instead)
[json]
assertCorrectness(json,schema)
assertElementCount(json,jsonpath,count)
assertElementNotPresent(json,jsonpath)
assertElementPresent(json,jsonpath)
assertValue(json,jsonpath,expected)
assertValues(json,jsonpath,array,exactOrder)
assertWellformed(json)
storeCount(json,jsonpath,var)
storeValue(json,jsonpath,var)
storeValues(json,jsonpath,var)
[mail]
[number]
assertEqual(num1,num2)
assertGreater(num1,num2)
assertGreaterOrEqual(num1,num2)
assertLesser(num1,num2)
assertLesserOrEqual(num1,num2)
average(var,array)
ceiling(var)
floor(var)
increment(var,amount)
max(var,array)
min(var,array)
round(var,closestDigit)
[pdf]
assertContentEqual(actualPdf,expectedPdf)
assertFormElementPresent(var,name)
assertFormValue(var,name,expected)
assertFormValues(var,name,expectedValues,exactOrder)
assertPatternNotPresent(pdf,regex)
assertPatternPresent(pdf,regex)
assertTextArray(pdf,textArray,ordered)
assertTextNotPresent(pdf,text)
assertTextPresent(pdf,text)
count(pdf,text,var)
saveAsPages(pdf,destination)
saveAsText(pdf,destination)
saveFormValues(pdf,var,pageAndLineStartEnd,strategy)
saveMetadata(pdf,var)
saveToVar(pdf,var)
[rdbms]
resultToCSV(var,csvFile,delim,showHeader)
runFile(var,db,file)
runSQL(var,db,sql)
runSQLs(var,db,sqls)
saveResult(db,sql,output)
- added “missing database driver” logic so we can provide instruction for missing database driver
- remove driver-specific code (use Java reflection instead)
[redis]
- basic redis support added. Initial support include:
- url based connection (ie.
redis://...
) append(profile,key,value)
: append value to existing keyassertKeyExists(profile,key)
: assert if specified key existsdelete(profile,key)
: delete a key and the associated valueflushAll(profile)
: flush all data of the connected redis serverflushDb(profile)
: flush all the data of the connected redis databaserename(profile,current,new)
: rename key nameset(profile,key,value)
: add/overwrite value of a keystore(var,profile,key)
: store the current value of a key in redis to nexial contextstoreKeys(var,profile,keyPattern)
: store all matching keys - based onkeyPattern
- to nexial context
[ssh]
scpCopyFrom(var,profile,remote,local)
scpCopyTo(var,profile,local,remote)
sftpCopyFrom(var,profile,remote,local)
sftpCopyTo(var,profile,local,remote)
sftpDelete(var,profile,remote)
sftpList(var,profile,remote)
sftpMoveFrom(var,profile,remote,local)
sftpMoveTo(var,profile,local,remote)
[web]
- shipped with chromedriver v2.37, this includes
- Supports Chrome v63-65
- Resolved issue 2221: Add command-line option to log INFO level to stderr [[Pri-2]]
- Resolved issue 450: ChromeDriver hangs when switching to new window whose document is being overwritten [[Pri-2]]
- shipped with geckodriver v0.20.0 (firefox),
this includes:
- fixes to shut down firefox process more cleanly.
- keyDown and keyUp action now support more than single primitive characters
- shipped with selenium 3.11.0,
this includes:
- Removed deprecated methods from
RemoteWebDriver
.
- Removed deprecated methods from
assertAndClick(locator,label)
assertAttribute(locator,attrName,value)
assertAttributeContains(locator,attrName,contains)
assertAttributeNotContains(locator,attrName,contains)
assertAttributeNotPresent(locator,attrName)
assertAttributePresent(locator,attrName)
assertChecked(locator)
assertContainCount(locator,text,count)
assertCssNotPresent(locator,property)
assertCssPresent(locator,property,value)
assertElementByAttributes(nameValues)
assertElementByText(locator,text)
assertElementCount(locator,count)
assertElementNotPresent(locator,maxWaitMs)
assertElementPresent(locator)
assertFocus(locator)
assertFrameCount(count)
assertFramePresent(frameName)
assertIECompatMode()
assertIENavtiveMode()
assertLinkByLabel(label)
assertNotChecked(locator)
assertNotFocus(locator)
assertNotText(locator,text)
assertNotVisible(locator)
assertOneMatch(locator)
assertScrollbarHNotPresent(locator)
assertScrollbarHPresent(locator)
assertScrollbarVNotPresent(locator)
assertScrollbarVPresent(locator)
assertTable(locator,row,column,text)
assertText(locator,text)
assertTextContains(locator,text)
assertTextCount(locator,text,count)
assertTextList(locator,list,ignoreOrder)
assertTextOrder(locator,descending)
assertTextPresent(text)
assertTitle(text)
assertValue(locator,value)
assertValueOrder(locator,descending)
assertVisible(locator)
clearLocalStorage()
click(locator)
clickAndWait(locator,waitMs)
clickByLabel(label)
clickByLabelAndWait(label,waitMs)
close()
closeAll()
deselectMulti(locator,array)
dismissInvalidCert()
dismissInvalidCertPopup()
doubleClick(locator)
doubleClickAndWait(locator,waitMs)
doubleClickByLabel(label)
doubleClickByLabelAndWait(label,waitMs)
editLocalStorage(key,value)
executeScript(var,script)
goBack()
goBackAndWait()
maximizeWindow()
mouseOver(locator)
open(url)
openAndWait(url,waitMs)
refresh()
refreshAndWait()
resizeWindow(width,height)
saveAllWindowIds(var)
saveAllWindowNames(var)
saveAttribute(var,locator,attrName)
saveCount(var,locator)
saveElement(var,locator)
saveElements(var,locator)
saveLocalStorage(var,key)
saveLocation(var)
savePageAs(var,sessionIdName,url)
savePageAsFile(sessionIdName,url,file)
saveText(var,locator)
saveTextArray(var,locator)
saveTextSubstringAfter(var,locator,delim)
saveTextSubstringBefore(var,locator,delim)
saveTextSubstringBetween(var,locator,start,end)
saveValue(var,locator)
scrollLeft(locator,pixel)
scrollRight(locator,pixel)
scrollTo(locator)
select(locator,text)
selectFrame(locator)
selectMulti(locator,array)
selectMultiOptions(locator)
selectText(locator)
selectWindow(winId)
selectWindowAndWait(winId,waitMs)
selectWindowByIndex(index)
selectWindowByIndexAndWait(index,waitMs)
toggleSelections(locator)
type(locator,value)
typeKeys(locator,value)
unselectAllText()
upload(fieldLocator,file)
verifyContainText(locator,text)
verifyText(locator,text)
wait(waitMs)
waitForElementPresent(locator)
waitForPopUp(winId,waitMs)
waitForTextPresent(text)
waitForTitle(text)
[webalert]
[webcookie]
assertNotPresent(name)
assertPresent(name)
assertValue(name,value)
delete(name)
deleteAll()
save(var,name)
saveAll(var)
[ws]
assertReturnCode(var,returnCode)
delete(url,body,var)
download(url,queryString,saveTo)
get(url,queryString,var)
head(url,var)
header(name,value)
headerByVar(name,var)
jwtParse(var,token,key)
jwtSignHS256(var,payload,key)
oauth(var,url,auth)
patch(url,body,var)
post(url,body,var)
put(url,body,var)
saveResponsePayload(var,file,append)
soap(action,url,payload,var)
[xml]
assertCorrectness(xml,schema)
assertElementCount(xml,xpath,count)
assertElementNotPresent(xml,xpath)
assertElementPresent(xml,xpath)
assertValue(xml,xpath,expected)
assertValues(xml,xpath,array,exactOrder)
assertWellformed(xml)
storeCount(xml,xpath,var)
storeValue(xml,xpath,var)
storeValues(xml,xpath,var)
- fixes: url query string encoding to properly ampersand
[nexial expression]
- fix rounding error with decimal numbers for NUMBER expression.