diff --git a/src/main/java/org/nexial/commons/proc/ProcessInvoker.java b/src/main/java/org/nexial/commons/proc/ProcessInvoker.java index 6147d3fc1..3fe42971e 100755 --- a/src/main/java/org/nexial/commons/proc/ProcessInvoker.java +++ b/src/main/java/org/nexial/commons/proc/ProcessInvoker.java @@ -27,6 +27,7 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.nexial.commons.utils.FileUtil; +import org.nexial.core.ShutdownAdvisor; import org.nexial.core.utils.ConsoleUtils; import static org.nexial.core.NexialConst.DEF_FILE_ENCODING; @@ -146,6 +147,7 @@ public static ProcessOutcome invoke(String command, List params, Map handles = driver.getWindowHandles(); + ConsoleUtils.log("found " + CollectionUtils.size(handles) + " window handle(s); recalibrating again..."); + + // double check + try { Thread.sleep(1000);} catch (InterruptedException e) { } + handles = driver.getWindowHandles(); + if (CollectionUtils.isEmpty(handles)) { return StepResult.fail("No window or windows handle found"); } int handleCount = handles.size(); diff --git a/src/main/kotlin/org/nexial/commons/proc/ExternalProcessTerminator.kt b/src/main/kotlin/org/nexial/commons/proc/ExternalProcessTerminator.kt new file mode 100644 index 000000000..1b0b81d50 --- /dev/null +++ b/src/main/kotlin/org/nexial/commons/proc/ExternalProcessTerminator.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2012-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.nexial.commons.proc + +import org.nexial.core.plugins.ForcefulTerminate + +class ExternalProcessTerminator(var externalProc: Process?) : ForcefulTerminate { + override fun mustForcefullyTerminate() = externalProc != null && externalProc!!.isAlive + + override fun forcefulTerminate() { + if (mustForcefullyTerminate()) { + println("forcefully destroying process $externalProc...") + externalProc!!.destroyForcibly() + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/org/nexial/core/plugins/external/ExternalCommand.kt b/src/main/kotlin/org/nexial/core/plugins/external/ExternalCommand.kt index f9676d5d9..adf0244a9 100644 --- a/src/main/kotlin/org/nexial/core/plugins/external/ExternalCommand.kt +++ b/src/main/kotlin/org/nexial/core/plugins/external/ExternalCommand.kt @@ -17,19 +17,25 @@ package org.nexial.core.plugins.external import org.apache.commons.io.IOUtils +import org.apache.commons.io.input.Tailer +import org.apache.commons.io.input.TailerListenerAdapter import org.apache.commons.lang3.StringUtils import org.junit.runner.JUnitCore -import org.nexial.commons.proc.ProcessInvoker import org.nexial.commons.proc.ProcessInvoker.* import org.nexial.commons.proc.RuntimeUtils +import org.nexial.commons.utils.FileUtil import org.nexial.commons.utils.TextUtils import org.nexial.core.NexialConst.* +import org.nexial.core.ShutdownAdvisor import org.nexial.core.SystemVariables.getDefaultBool import org.nexial.core.model.StepResult +import org.nexial.core.plugins.ForcefulTerminate import org.nexial.core.plugins.base.BaseCommand import org.nexial.core.utils.CheckUtils.requires import org.nexial.core.utils.CheckUtils.requiresNotBlank +import org.nexial.core.utils.ConsoleUtils import org.nexial.core.variable.Syspath +import java.io.File import java.io.File.separator import java.io.IOException import java.lang.System.lineSeparator @@ -106,7 +112,7 @@ class ExternalCommand : BaseCommand() { val env = prepEnv(fileName, currentRow) - ProcessInvoker.invoke(programAndParams[0], programAndParams.filterIndexed { index, _ -> index > 0 }, env) + invoke(programAndParams[0], programAndParams.filterIndexed { index, _ -> index > 0 }, env) //attach link to results addLinkRef("Follow the link to view the output", "output", fileName) @@ -133,7 +139,7 @@ class ExternalCommand : BaseCommand() { val env = prepEnv(fileName, currentRow) - ProcessInvoker.invokeNoWait(programAndParams[0], programAndParams.filterIndexed { index, _ -> index > 0 }, env) + invokeNoWait(programAndParams[0], programAndParams.filterIndexed { index, _ -> index > 0 }, env) //attach link to results addLinkRef("Follow the link to view the output", "output", fileName) @@ -144,6 +150,31 @@ class ExternalCommand : BaseCommand() { } } + /** + * tail a reachable (local or network via shared folder or SMB) file. File does not have to exists when this command + * is executed. However, background thread will be issued to watch/display the content of such file. + * @param file String + * @return StepResult + */ + fun tail(id: String, file: String): StepResult { + requiresNotBlank(id, "invalid id", id) + requiresNotBlank(file, "invalid file", file) + + if (FileUtil.isFileReadable(file, 1)) { + ConsoleUtils.log("File $file not readable at this time. Nexial will display its content when available") + } + + val listener = ExternalTailer(id) + val tailer = Tailer.create(File(file), listener, 250, true, true) + + val tailThread = Thread(tailer) + tailThread.isDaemon = true + tailThread.start() + + ShutdownAdvisor.addAdvisor(ExternalTailShutdownHelper(tailThread, tailer)) + return StepResult.success("tail watch on $file began...") + } + private fun prepEnv(outputFile: String, currentRow: String): MutableMap { val env = mutableMapOf() @@ -168,3 +199,31 @@ class ExternalCommand : BaseCommand() { } } } + +class ExternalTailer(val id: String) : TailerListenerAdapter() { + override fun handle(line: String?) = ConsoleUtils.log(id, line) + + override fun handle(ex: java.lang.Exception?) { + if (ex !is InterruptedException) ConsoleUtils.log(id, "ERROR FOUND:\n$ex") + } + + override fun fileNotFound() { + super.fileNotFound() + } +} + +class ExternalTailShutdownHelper(private var tailThread: Thread?, var tailer: Tailer?) : ForcefulTerminate { + override fun mustForcefullyTerminate() = (tailThread != null && tailThread!!.isAlive) || (tailer != null) + + override fun forcefulTerminate() { + if (tailer != null) { + tailer!!.stop() + tailer = null + } + + if (tailThread != null) { + tailThread!!.interrupt() + tailThread = null + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/org/nexial/core/tools/repairExcel/ExcelUtils.kt b/src/main/kotlin/org/nexial/core/tools/repairExcel/ExcelUtils.kt index 408f477db..87f38e710 100644 --- a/src/main/kotlin/org/nexial/core/tools/repairExcel/ExcelUtils.kt +++ b/src/main/kotlin/org/nexial/core/tools/repairExcel/ExcelUtils.kt @@ -74,9 +74,7 @@ object ExcelUtils { val targetWorkbook = targetExcel.workbook val excelAddress = fileType.excelAddress try { - sourceSheets.forEach { sheet -> - copySheet(sheet.sheet, targetWorkbook, sheet.findLastDataRow(excelAddress), fileType) - } + sourceSheets.forEach { copySheet(it.sheet, targetWorkbook, it.findLastDataRow(excelAddress), fileType) } } catch (e: Exception) { log("Unable to proceed repair file ${file.absolutePath} further due to ${e.message}") } finally { @@ -102,11 +100,12 @@ object ExcelUtils { val sheetName = sourceSheet.sheetName val tempSheetIndex = targetWorkbook.getSheetIndex(TEMP_SHEET_NAME) val targetSheet = targetWorkbook.cloneSheet(tempSheetIndex, sheetName) + // set maximum row limit to read data - val lastDataRow = if (lastDataRow < EXCEL_ROW_COL_MAX_LIMIT) lastDataRow else EXCEL_ROW_COL_MAX_LIMIT + val lastRow = Math.min(lastDataRow, EXCEL_ROW_COL_MAX_LIMIT) var destRowIndex = 0 - for (rowIndex in 0 until lastDataRow) { + for (rowIndex in 0 until lastRow) { if (!RepairExcels.ignoreRowToCopy(fileType, rowIndex)) { val sourceRow = getRow(sourceSheet, rowIndex) // remove rows from data sheets if system variable is read only. @@ -124,24 +123,18 @@ object ExcelUtils { * @param newRow [XSSFRow] new row in the target sheet where source row to be copied * @param fileType [ArtifactType] type of file. By default it is [DATA] */ - fun copyRow(sourceRow: XSSFRow, newRow: XSSFRow, fileType: ArtifactType = DATA) { - var lastDataColumn = RepairExcels.lastColumnIdx(sourceRow, fileType) + private fun copyRow(sourceRow: XSSFRow, newRow: XSSFRow, fileType: ArtifactType = DATA) { // set column index as max limit - if (lastDataColumn > EXCEL_ROW_COL_MAX_LIMIT) { - lastDataColumn = EXCEL_ROW_COL_MAX_LIMIT - } + val lastColumn = Math.min(RepairExcels.lastColumnIdx(sourceRow, fileType), EXCEL_ROW_COL_MAX_LIMIT) - for (columnIndex in 0 until lastDataColumn + 1) { + for (columnIndex in 0 until lastColumn + 1) { val oldCell = sourceRow.getCell(columnIndex) var newCell = newRow.getCell(columnIndex) // If the old cell is null jump to next cell with new cell as empty - if (oldCell == null) { - // newCell = null - continue - } else { - if (newCell == null) newCell = newRow.createCell(columnIndex) - } + if (oldCell == null) continue + + if (newCell == null) newCell = newRow.createCell(columnIndex) // set cell value when (oldCell.cellTypeEnum) { @@ -201,15 +194,15 @@ object ExcelUtils { } } - val repairArtifactLog: RepairArtifactLog? = - try { - Excel.save(destFile, targetWorkbook) - action = "processed (changed)" - RepairArtifactLog(file, 0, backupOrPreviewLoc) - } catch (e: IOException) { - ConsoleUtils.error("Unable to repair excel as ${e.message}") - null - } + val repairArtifactLog: RepairArtifactLog? = try { + Excel.save(destFile, targetWorkbook) + action = "processed (changed)" + RepairArtifactLog(file, 0, backupOrPreviewLoc) + } catch (e: IOException) { + ConsoleUtils.error("Unable to repair excel as ${e.message}") + null + } + log(action, file) return repairArtifactLog } diff --git a/src/test/resources/showcase/artifact/data/dummy.jmx b/src/test/resources/showcase/artifact/data/dummy.jmx index 6b7653264..5b448f1e6 100755 --- a/src/test/resources/showcase/artifact/data/dummy.jmx +++ b/src/test/resources/showcase/artifact/data/dummy.jmx @@ -39,13 +39,14 @@ continue false - 10 + 30 5 - 10 + 1 false + true @@ -62,7 +63,7 @@ - + @@ -85,11 +86,16 @@ false true false + true + + 1000 + + diff --git a/src/test/resources/showcase/artifact/data/external-showcase.data.xlsx b/src/test/resources/showcase/artifact/data/external-showcase.data.xlsx index 5fe2f54fd..893001a61 100644 Binary files a/src/test/resources/showcase/artifact/data/external-showcase.data.xlsx and b/src/test/resources/showcase/artifact/data/external-showcase.data.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/base-showcase-macro.xlsx b/src/test/resources/showcase/artifact/script/base-showcase-macro.xlsx index f19b45929..0e89a7769 100755 Binary files a/src/test/resources/showcase/artifact/script/base-showcase-macro.xlsx and b/src/test/resources/showcase/artifact/script/base-showcase-macro.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/base-showcase.xlsx b/src/test/resources/showcase/artifact/script/base-showcase.xlsx index 5e5ff766f..c71f61830 100755 Binary files a/src/test/resources/showcase/artifact/script/base-showcase.xlsx and b/src/test/resources/showcase/artifact/script/base-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/disable-showcase-macro.xlsx b/src/test/resources/showcase/artifact/script/disable-showcase-macro.xlsx index a3d63b165..b5069e36d 100755 Binary files a/src/test/resources/showcase/artifact/script/disable-showcase-macro.xlsx and b/src/test/resources/showcase/artifact/script/disable-showcase-macro.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/disable-showcase.xlsx b/src/test/resources/showcase/artifact/script/disable-showcase.xlsx index 83137fc0f..e95afc104 100755 Binary files a/src/test/resources/showcase/artifact/script/disable-showcase.xlsx and b/src/test/resources/showcase/artifact/script/disable-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/electron-showcase.xlsx b/src/test/resources/showcase/artifact/script/electron-showcase.xlsx index ea34c51d4..52f064e89 100755 Binary files a/src/test/resources/showcase/artifact/script/electron-showcase.xlsx and b/src/test/resources/showcase/artifact/script/electron-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/excel-showcase.xlsx b/src/test/resources/showcase/artifact/script/excel-showcase.xlsx index bae71fe50..97b719738 100755 Binary files a/src/test/resources/showcase/artifact/script/excel-showcase.xlsx and b/src/test/resources/showcase/artifact/script/excel-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/expression-showcase.xlsx b/src/test/resources/showcase/artifact/script/expression-showcase.xlsx index 35309dfa2..28f53b379 100755 Binary files a/src/test/resources/showcase/artifact/script/expression-showcase.xlsx and b/src/test/resources/showcase/artifact/script/expression-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/external-showcase.xlsx b/src/test/resources/showcase/artifact/script/external-showcase.xlsx index ff3903411..88bb13fbe 100644 Binary files a/src/test/resources/showcase/artifact/script/external-showcase.xlsx and b/src/test/resources/showcase/artifact/script/external-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/failafter-showcase.xlsx b/src/test/resources/showcase/artifact/script/failafter-showcase.xlsx index 7371f1308..090321e57 100755 Binary files a/src/test/resources/showcase/artifact/script/failafter-showcase.xlsx and b/src/test/resources/showcase/artifact/script/failafter-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/image-showcase.xlsx b/src/test/resources/showcase/artifact/script/image-showcase.xlsx index 4f4913816..763411875 100755 Binary files a/src/test/resources/showcase/artifact/script/image-showcase.xlsx and b/src/test/resources/showcase/artifact/script/image-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/io-showcase.xlsx b/src/test/resources/showcase/artifact/script/io-showcase.xlsx index 993755ea6..14a03ac8c 100755 Binary files a/src/test/resources/showcase/artifact/script/io-showcase.xlsx and b/src/test/resources/showcase/artifact/script/io-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/jmeter-showcase.xlsx b/src/test/resources/showcase/artifact/script/jmeter-showcase.xlsx index 2c7aa9118..89e3b16ba 100755 Binary files a/src/test/resources/showcase/artifact/script/jmeter-showcase.xlsx and b/src/test/resources/showcase/artifact/script/jmeter-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/json-showcase.xlsx b/src/test/resources/showcase/artifact/script/json-showcase.xlsx index 0f60794ee..cd22eab61 100755 Binary files a/src/test/resources/showcase/artifact/script/json-showcase.xlsx and b/src/test/resources/showcase/artifact/script/json-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/mail-showcase.xlsx b/src/test/resources/showcase/artifact/script/mail-showcase.xlsx index bd2f29ccf..26d1d5fcc 100755 Binary files a/src/test/resources/showcase/artifact/script/mail-showcase.xlsx and b/src/test/resources/showcase/artifact/script/mail-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/number-showcase.xlsx b/src/test/resources/showcase/artifact/script/number-showcase.xlsx index 2edf79f7d..b59b24c9a 100755 Binary files a/src/test/resources/showcase/artifact/script/number-showcase.xlsx and b/src/test/resources/showcase/artifact/script/number-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/redis-showcase.xlsx b/src/test/resources/showcase/artifact/script/redis-showcase.xlsx index 6f3961535..52a814468 100755 Binary files a/src/test/resources/showcase/artifact/script/redis-showcase.xlsx and b/src/test/resources/showcase/artifact/script/redis-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/sqs-showcase.xlsx b/src/test/resources/showcase/artifact/script/sqs-showcase.xlsx index ac6421f46..7eaaaac47 100755 Binary files a/src/test/resources/showcase/artifact/script/sqs-showcase.xlsx and b/src/test/resources/showcase/artifact/script/sqs-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/step-showcase.xlsx b/src/test/resources/showcase/artifact/script/step-showcase.xlsx index e285022a4..ac0cf6b2b 100755 Binary files a/src/test/resources/showcase/artifact/script/step-showcase.xlsx and b/src/test/resources/showcase/artifact/script/step-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/testplan-report-test-harness.xlsx b/src/test/resources/showcase/artifact/script/testplan-report-test-harness.xlsx index 89c466bdc..0452c80c5 100755 Binary files a/src/test/resources/showcase/artifact/script/testplan-report-test-harness.xlsx and b/src/test/resources/showcase/artifact/script/testplan-report-test-harness.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/web-showcase.xlsx b/src/test/resources/showcase/artifact/script/web-showcase.xlsx index 82ca8ec0d..62fb51dcf 100755 Binary files a/src/test/resources/showcase/artifact/script/web-showcase.xlsx and b/src/test/resources/showcase/artifact/script/web-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/ws.async-showcase.xlsx b/src/test/resources/showcase/artifact/script/ws.async-showcase.xlsx index bb65426cd..8a38ddf53 100755 Binary files a/src/test/resources/showcase/artifact/script/ws.async-showcase.xlsx and b/src/test/resources/showcase/artifact/script/ws.async-showcase.xlsx differ diff --git a/src/test/resources/showcase/artifact/script/xml-showcase.xlsx b/src/test/resources/showcase/artifact/script/xml-showcase.xlsx index a8a41e6db..5ff8bec78 100755 Binary files a/src/test/resources/showcase/artifact/script/xml-showcase.xlsx and b/src/test/resources/showcase/artifact/script/xml-showcase.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt.xlsx index e0ce490d7..115b03a34 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt_iter.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt_iter.xlsx index ea4f1c31b..841bb046d 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt_iter.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_ExecInterrupt_iter.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_IterationDataTests.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_IterationDataTests.xlsx index cdd42ea0e..467eee77a 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_IterationDataTests.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_IterationDataTests.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_macro.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_macro.xlsx index 752564478..b6de455ee 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_macro.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_macro.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_macro2-macro.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_macro2-macro.xlsx index da0de5cb1..d529423c5 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_macro2-macro.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_macro2-macro.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_macro2.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_macro2.xlsx index 84ed3147c..e11dfa60d 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_macro2.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_macro2.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_macro3-macro.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_macro3-macro.xlsx index adaaa1ace..e5893cff4 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_macro3-macro.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_macro3-macro.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_macro3.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_macro3.xlsx index fc3d84f5a..e62e6ca81 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_macro3.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_macro3.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_part1.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_part1.xlsx index f41a04ac9..81dc2b98a 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_part1.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_part1.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_part2.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_part2.xlsx index 98cf19763..b1e81fcac 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_part2.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_part2.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_base_part3.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_base_part3.xlsx index ac40c83d4..ce7eceb01 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_base_part3.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_base_part3.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_excel.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_excel.xlsx index d80973997..a94fe247b 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_excel.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_excel.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_expressions.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_expressions.xlsx index 612152c56..d31867bb1 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_expressions.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_expressions.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_io.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_io.xlsx index 0be698bfd..05d131ba6 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_io.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_io.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_json.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_json.xlsx index aac40fd77..c14664420 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_json.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_json.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_numberCommand.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_numberCommand.xlsx index 1fef6efaf..cd7ae5e6c 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_numberCommand.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_numberCommand.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_rdbms.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_rdbms.xlsx index 6fda77eec..2422257fc 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_rdbms.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_rdbms.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_repeatUntil.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_repeatUntil.xlsx index 587f9fcd4..7bef64a2e 100755 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_repeatUntil.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_repeatUntil.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_web.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_web.xlsx index 15eac8e28..72d700089 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_web.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_web.xlsx differ diff --git a/src/test/resources/unittesting/artifact/script/unitTest_xml.xlsx b/src/test/resources/unittesting/artifact/script/unitTest_xml.xlsx index 117e3a4e9..4b96e8075 100644 Binary files a/src/test/resources/unittesting/artifact/script/unitTest_xml.xlsx and b/src/test/resources/unittesting/artifact/script/unitTest_xml.xlsx differ