【发布时间】:2019-06-24 21:46:04
【问题描述】:
我正在编写一个在 SOAP UI 中使用的 groovy 脚本,它读取一个 CSV 帐号文件,然后在一些 XML 中使用帐号。大约有 5000 个帐号,我需要循环一个 SOAP UI 测试用例。
由于帐号只能使用一次,我的想法是编辑 CSV 文件并说已使用该行,然后在 Groovy 中添加逻辑以不再使用该行。
我已经成功读取了 CSV 文件并循环了它,我的具体问题是我想将 CSV 的当前行设置为“是”(或者任何变量都可以:))。我可以追加到文件的末尾,但我需要追加到特定的行(即循环的当前行)。
我已经尝试过各种方法,例如 inputFile[rowsData].append("Yes"),我觉得我已经很接近了,但不是很接近(这是我第一次使用 Groovy 和 CSV)
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
wrapUp = groovyUtils.getXmlHolder( "WrapUp#Request" )
import com.eviware.soapui.support.UISupport
import groovy.io.FileType
import org.apache.commons.io.FileUtils
def csvFilePath = "file.csv"
context.fileReader = new BufferedReader(new FileReader(csvFilePath))
def inputFile = new File("file.csv")
rowsData = context.fileReader.readLines()
int rowsize = rowsData.size()
for(int i =0; i < rowsize; i++)
{
rowdata = rowsData[i]
String[] data = rowdata.split(",")
// if the third column is not yes, we haven't used the data
if (data[2].toString() != "YES") {
testRunner.testCase.setPropertyValue("ACCOUNT_NUMBER",data[1])
testRunner.testCase.setPropertyValue("SORT_CODE",data[0])
// this inputs to the end of the csv, needs to go to the current row
inputFile.append("Yes")
break;
}
else
log.info "OUT OF ACCOUNT NUMBERS"
}
【问题讨论】:
-
您使用的是开源版还是专业版?