0
渴望聽到關於如何實現這一點的反饋A)不那麼難看B)堅持至少一些基本的編碼原則!我使用的是SOAPUI,因此對屬性的任何引用都意味着某些內容正在存儲在測試用例屬性步驟中。Groovy代碼通過GET請求和計數節點進行循環
我想使用字典,但我失去了應該從哪裏開始。我只知道下面的if語句是針對一些非常醜陋和容易出錯的代碼。
所有的建議,但重要的是歡迎。我渴望改善!
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")
}
感謝蒂姆 - 我給這個一杆。 – 2010-11-20 04:26:58