Я пытаюсь получить часть кода Groovy (работающего с SOAPUI), но у меня проблема.
Предполагается, что этот код должен прочитать файл свойств, а затем установить некоторые свойства в SOAPUI. Я поместил это в шаг теста скрипта Groovy в тестовом примере SOAPUI, и каждый раз, когда он запускается, я хочу, чтобы он читал из другого имени файла, поэтому у меня есть два дополнительных свойства в тестовом примере: cur_request_number и max_request_number.
Предполагается, что этот код будет увеличивать cur_request_number каждый раз и проверять, достигает ли он max_request_number, и, если это так, установить cur_request_number обратно в 1. Он работает, но только до тех пор, пока max_request_number равен 9 или ниже. Если оно равно 10 или выше, когда оно достигает 9 или 10, cur_request_number ++, по-видимому, увеличивает его до строкового значения, например точки с запятой.
Другими словами, предполагается читать (в каждом цикле):
testprop1.txt
testprop2.txt
.
.
Код, который я публикую ниже, на самом деле еще не читает файлы textpropX.txt, а просто печатает имена файлов, которые он будет читать, поскольку я все еще отлаживаю.
Я действительно новичок в Groovy, так что я застрял. Я пытался добавить toInteger (), но затем у меня возникают другие проблемы.
def cur_request_number = testRunner.testCase.getPropertyValue("cur_request_number");
def max_request_number = testRunner.testCase.getPropertyValue("max_request_number");
log.info "INITIAL cur_request_number=[" + cur_request_number + "]"
log.info "INITIAL max_request_number=[" + max_request_number + "]"
cur_request_number++;
log.info "BUMPED cur_request_number=[" + cur_request_number + "]"
if (cur_request_number == max_request_number) {
log.info "In the IF about to reset cur_request_number to 1";
cur_request_number = "1";
}
// set the cur_request_number property (either the incremented one, or "1")
testRunner.testCase.setPropertyValue("cur_request_number", cur_request_number);
cur_request_filename = "E:/SOAPUI-PROPS/testprops" + cur_request_number.toString() +".txt";
log.info "READING FROM Request file [" + cur_request_filename + "]"
props = new java.util.Properties ()
file = new File("E:/SOAPUI-PROPS/testprops.txt")
if(!file.exists()) {
log.info "No file found at E:/SOAPUI-PROPS/testprops.txt"
}
else {
log.info "max_request_number=[" + max_request_number + "]"
log.info "In the ELSE, cur_request_number=[" + cur_request_number + "]"
//testRunner.testCase.setPropertyValue("cur_request_number", cur_request_number);
log.info "Found E:/SOAPUI-PROPS/testprops.txt"
fis = new FileInputStream (file)
props.load (fis)
requestid = props.getProperty ( "requestid" )
log.info "requestid = [" + requestid + "]"
dnstring = props.getProperty ( "dnstring" )
log.info "dnstring= [" + dnstring + "]"
testRunner.testCase.setPropertyValue("requestid", requestid);
context.requestid = requestid;
log.info "Finished setting 'requestid' property"
testRunner.testCase.setPropertyValue("dnstring", dnstring);
context.dnstring = dnstring;
log.info "Finished setting 'dnstring' property"
}
Если бы кто-нибудь мог сказать мне, что я делаю неправильно, я был бы очень признателен.
Спасибо,
Jim