Kaum zu hören, wie man das macht A) weniger hässlich B) Halten Sie sich an einige grundlegende Programmierprinzipien! Ich verwende SOAPUI, also bedeutet jeder Verweis auf Eigenschaften, dass etwas in einem Testfall-Eigenschaftsschritt gespeichert wird.Groovy-Code zum Durchlaufen von GET-Anfragen und Zählen von Knoten
Ich möchte ein Wörterbuch verwenden, aber bin verloren, wo ich anfangen sollte. Ich weiß nur, dass die if-Anweisungen unten für einige sehr hässliche und fehleranfällige Codes gemacht wurden.
Alle Ratschläge, wie wichtig auch immer, sind willkommen. Ich möchte mich verbessern!
import java.text.*
import java.util.*
def xmlSlurper = new groovy.util.XmlSlurper()
// Get the previous total for number of journals
def journalCountProp = testRunner.testCase.getTestStepByName("Properties")
def journalCountTotal = journalCountProp.getPropertyValue("journalCount")
log.info " Previous JournalCount from last run: "+journalCountTotal
def lastOffsetProp = testRunner.testCase.getTestStepByName("Properties")
def lastOffsetHolder = lastOffsetProp.getPropertyValue("offset")
log.info " Previous offset from last run: "+lastOffsetHolder
// Get the response for a given timeline
def response = xmlSlurper.parseText(context.expand('${GET Journal using Offset#Response}'));
def currentJournalCount = response.Journals.Journal.size()
log.info " Number of Journals in this Run: "+currentJournalCount
//Getting the date from the last Journal (including an offset as the array count starts at 0)
def lastDate = response.Journals.Journal[currentJournalCount-1].JournalDate
log.info " Date from this response: "+lastDate
//Add up the Journals total for a given date.
journalCountProp.setPropertyValue("journalQueryDate", String.valueOf(lastDate))
def countJournalAsInt
def offsetCountAsInt
def accTypeBank = context.expand('${Properties#accTypeBankProp}').toInteger()
//log.info "AccountType - BANK : "+accTypeBank
def accTypeBankProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeBankTotal = accTypeBankProp.getPropertyValue("accTypeBankProp")
def accTypeCURRENT = context.expand('${Properties#accTypeCURRENTProp}').toInteger()
//log.info "AccountType - Current : "+accTypeCURRENT
def accTypeCURRENTProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeCURRENTTotal = accTypeCURRENTProp.getPropertyValue("accTypeCURRENTProp")
def accTypeCURRLIAB = context.expand('${Properties#accTypeCURRLIABProp}').toInteger()
//log.info "AccountType - CURRLIAB : "+accTypeCURRLIAB
def accTypeCURRLIABProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeCURRLIABTotal = accTypeCURRLIABProp.getPropertyValue("accTypeCURRLIABProp")
def accTypeDEPRECIATN = context.expand('${Properties#accTypeCURRLIABProp}').toInteger()
//log.info "AccountType - DEPRECIATN : "+accTypeDEPRECIATN
def accTypeDEPRECIATNProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeDEPRECIATNTotal = accTypeDEPRECIATNProp.getPropertyValue("accTypeDEPRECIATNProp")
def accTypeDIRECTCOSTS = context.expand('${Properties#accTypeCURRLIABProp}').toInteger()
//log.info "AccountType - DIRECTCOSTS : "+accTypeDIRECTCOSTS
def accTypeDIRECTCOSTSProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeDIRECTCOSTSTotal = accTypeDIRECTCOSTSProp.getPropertyValue("accTypeDIRECTCOSTSProp")
def accTypeEQUITY = context.expand('${Properties#accTypeEQUITYProp}').toInteger()
//log.info "AccountType - EQUITY : "+accTypeEQUITY
def accTypeEQUITYProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeEQUITYTotal = accTypeEQUITYProp.getPropertyValue("accTypeEQUITYProp")
def accTypeEXPENSE = context.expand('${Properties#accTypeEXPENSEProp}').toInteger()
//log.info "AccountType - EXPENSE : "+accTypeEXPENSE
def accTypeEXPENSEProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeEXPENSETotal = accTypeEXPENSEProp.getPropertyValue("accTypeCURRLIABProp")
def accTypeFIXED = context.expand('${Properties#accTypeFIXEDProp}').toInteger()
//log.info "AccountType - FIXED : "+accTypeFIXED
def accTypeFIXEDProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeFIXEDTotal = accTypeFIXEDProp.getPropertyValue("accTypeFIXEDProp")
def accTypeLIABILITY = context.expand('${Properties#accTypeLIABILITYProp}').toInteger()
//log.info "AccountType - LIABILITY : "+accTypeLIABILITY
def accTypeLIABILITYProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeLIABILITYTotal = accTypeLIABILITYProp.getPropertyValue("accTypeLIABILITYProp")
def accTypeOTHERINCOME = context.expand('${Properties#accTypeOTHERINCOMEProp}').toInteger()
//log.info "AccountType - OTHERINCOME : "+accTypeOTHERINCOME
def accTypeOTHERINCOMEProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeOTHERINCOMETotal = accTypeOTHERINCOMEProp.getPropertyValue("accTypeOTHERINCOMEProp")
def accTypeOVERHEADS = context.expand('${Properties#accTypeOVERHEADSProp}').toInteger()
//log.info "AccountType - OVERHEADS : "+accTypeOVERHEADS
def accTypeOVERHEADSProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeOVERHEADSTotal = accTypeOVERHEADSProp.getPropertyValue("accTypeOVERHEADSProp")
def accTypeREVENUE = context.expand('${Properties#accTypeREVENUEProp}').toInteger()
//log.info "AccountType - REVENUE : "+accTypeREVENUE
def accTypeREVENUEProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeREVENUETotal = accTypeREVENUEProp.getPropertyValue("accTypeREVENUEProp")
def accTypeSALES = context.expand('${Properties#accTypeSALESProp}').toInteger()
//log.info "AccountType - SALES : "+accTypeSALES
def accTypeSALESProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeSALESTotal = accTypeSALESProp.getPropertyValue("accTypeSALESProp")
def accTypeTERMLIAB = context.expand('${Properties#accTypeTERMLIABProp}').toInteger()
//log.info "AccountType - TERMLIAB : "+accTypeTERMLIAB
def accTypeTERMLIABProp = testRunner.testCase.getTestStepByName("Properties")
def accTypeTERMLIABTotal = accTypeTERMLIABProp.getPropertyValue("accTypeTERMLIABProp")
def journalLineItems = response.Journals.Journal.JournalLines
if(currentJournalCount < 100)
{
log.info " Nothing to see here - looks like we've reached the end of the journals"
//add existing total to current response total
log.info " JournalCount: "+(journalCountTotal.toInteger() + currentJournalCount.toInteger())
offsetCountAsInt =journalCountTotal.toInteger() + currentJournalCount.toInteger()
journalCountProp.setPropertyValue("journalCount",String.valueOf(offsetCountAsInt))
for (lineItem in journalLineItems.JournalLine)
{
log.info "NOTE: From <100 Loop: "+lineItem.AccountType
if (lineItem.AccountType == 'BANK')
{
accTypeBank++
accTypeBankProp.setPropertyValue("accTypeBankProp",String.valueOf(accTypeBank))
}
if (lineItem.AccountType == 'CURRENT')
{
accTypeCURRENT++
accTypeCURRENTProp.setPropertyValue("accTypeCURRENTProp",String.valueOf(accTypeCURRENT))
}
if (lineItem.AccountType == 'CURRLIAB')
{ accTypeCURRLIAB++
accTypeCURRLIABProp.setPropertyValue("accTypeCURRLIABProp",String.valueOf(accTypeCURRENT))
}
if (lineItem.AccountType == 'DEPRECIATN')
{
accTypeDEPRECIATN++
accTypeDEPRECIATNProp.setPropertyValue("accTypeDEPRECIATNProp",String.valueOf(accTypeDEPRECIATN))
}
if (lineItem.AccountType == 'DIRECTCOSTS')
{
accTypeDIRECTCOSTS++
accTypeDEPRECIATNProp.setPropertyValue("accTypeDIRECTCOSTSProp",String.valueOf(accTypeDIRECTCOSTS))
}
if (lineItem.AccountType == 'EQUITY')
{
accTypeEQUITY++
accTypeEQUITYProp.setPropertyValue("accTypeEQUITYProp",String.valueOf(accTypeEQUITY))
}
if (lineItem.AccountType == 'EXPENSE')
{
accTypeEXPENSE++
accTypeEXPENSEProp.setPropertyValue("accTypeEXPENSEProp",String.valueOf(accTypeEXPENSE))
}
if (lineItem.AccountType == 'FIXED')
{
accTypeFIXED++
accTypeFIXEDProp.setPropertyValue("accTypeFIXEDProp",String.valueOf(accTypeFIXED))
}
if (lineItem.AccountType == 'LIABILITY')
{
accTypeLIABILITY++
accTypeLIABILITYProp.setPropertyValue("accTypeLIABILITYProp",String.valueOf(accTypeLIABILITY))
}
if (lineItem.AccountType == 'OTHERINCOME')
{
accTypeOTHERINCOME++
accTypeOTHERINCOMEProp.setPropertyValue("accTypeOTHERINCOMEProp",String.valueOf(accTypeOTHERINCOME))
}
if (lineItem.AccountType == 'OVERHEADS')
{
accTypeOVERHEADS++
accTypeOVERHEADSProp.setPropertyValue("accTypeOVERHEADSProp",String.valueOf(accTypeOVERHEADS))
}
if (lineItem.AccountType == 'REVENUE')
{
accTypeREVENUE++
accTypeREVENUEProp.setPropertyValue("accTypeREVENUEProp",String.valueOf(accTypeREVENUE))
}
if (lineItem.AccountType == 'SALES')
{
accTypeSALES++
accTypeSALESProp.setPropertyValue("accTypeSALESProp",String.valueOf(accTypeSALES))
}
if (lineItem.AccountType == 'TERMLIAB')
{
accTypeTERMLIAB++
accTypeTERMLIABProp.setPropertyValue("accTypeTERMLIABProp",String.valueOf(accTypeTERMLIAB))
}
}
}
else
{
countJournalAsInt = journalCountTotal.toInteger() + currentJournalCount.toInteger()
journalCountProp.setPropertyValue("journalCount", String.valueOf(countJournalAsInt))
log.info "last offset "+lastOffsetHolder
offsetCountAsInt = lastOffsetHolder.toInteger()+100
journalCountProp.setPropertyValue("offset",String.valueOf(offsetCountAsInt))
for (lineItem in journalLineItems.JournalLine)
{
log.info "NOTE: From main loop: "+lineItem.AccountType
if (lineItem.AccountType == 'BANK')
{
accTypeBank++
accTypeBankProp.setPropertyValue("accTypeBankProp",String.valueOf(accTypeBank))
}
if (lineItem.AccountType == 'CURRENT')
{
accTypeCURRENT++
accTypeCURRENTProp.setPropertyValue("accTypeCURRENTProp",String.valueOf(accTypeCURRENT))
}
if (lineItem.AccountType == 'CURRLIAB')
{ accTypeCURRLIAB++
accTypeCURRLIABProp.setPropertyValue("accTypeCURRLIABProp",String.valueOf(accTypeCURRENT))
}
if (lineItem.AccountType == 'DEPRECIATN')
{
accTypeDEPRECIATN++
accTypeDEPRECIATNProp.setPropertyValue("accTypeDEPRECIATNProp",String.valueOf(accTypeDEPRECIATN))
}
if (lineItem.AccountType == 'DIRECTCOSTS')
{
accTypeDIRECTCOSTS++
accTypeDEPRECIATNProp.setPropertyValue("accTypeDIRECTCOSTSProp",String.valueOf(accTypeDIRECTCOSTS))
}
if (lineItem.AccountType == 'EQUITY')
{
accTypeEQUITY++
accTypeEQUITYProp.setPropertyValue("accTypeEQUITYProp",String.valueOf(accTypeEQUITY))
}
if (lineItem.AccountType == 'EXPENSE')
{
accTypeEXPENSE++
accTypeEXPENSEProp.setPropertyValue("accTypeEXPENSEProp",String.valueOf(accTypeEXPENSE))
}
if (lineItem.AccountType == 'FIXED')
{
accTypeFIXED++
accTypeFIXEDProp.setPropertyValue("accTypeFIXEDProp",String.valueOf(accTypeFIXED))
}
if (lineItem.AccountType == 'LIABILITY')
{
accTypeLIABILITY++
accTypeLIABILITYProp.setPropertyValue("accTypeLIABILITYProp",String.valueOf(accTypeLIABILITY))
}
if (lineItem.AccountType == 'OTHERINCOME')
{
accTypeOTHERINCOME++
accTypeOTHERINCOMEProp.setPropertyValue("accTypeOTHERINCOMEProp",String.valueOf(accTypeOTHERINCOME))
}
if (lineItem.AccountType == 'OVERHEADS')
{
accTypeOVERHEADS++
accTypeOVERHEADSProp.setPropertyValue("accTypeOVERHEADSProp",String.valueOf(accTypeOVERHEADS))
}
if (lineItem.AccountType == 'REVENUE')
{
accTypeREVENUE++
accTypeREVENUEProp.setPropertyValue("accTypeREVENUEProp",String.valueOf(accTypeREVENUE))
}
if (lineItem.AccountType == 'SALES')
{
accTypeSALES++
accTypeSALESProp.setPropertyValue("accTypeSALESProp",String.valueOf(accTypeSALES))
}
if (lineItem.AccountType == 'TERMLIAB')
{
accTypeTERMLIAB++
accTypeTERMLIABProp.setPropertyValue("accTypeTERMLIABProp",String.valueOf(accTypeTERMLIAB))
}
}
testRunner.gotoStepByName("GET Journal using Offset")
}
Dank Tim - Ich werde diese ein Schuss. –