func (b *HRPBoomer) convertBoomerTask(testcase *TestCase, rendezvousList []*Rendezvous) *boomer.Task {
caseRunner, err := b.hrpRunner.NewCaseRunner(testcase)
parametersIterator := caseRunner.parametersIterator
parametersIterator.SetUnlimitedMode()
once := sync.Once{}
mutex := sync.Mutex{}
return &boomer.Task{
Name: testcase.Config.Name,
Weight: testcase.Config.Weight,
Fn: func() {
testcaseSuccess := true
transactionSuccess := true
sessionRunner := caseRunner.NewSession()
mutex.Lock()
if parametersIterator.HasNext() {
sessionRunner.InitWithParameters(parametersIterator.Next())
}
mutex.Unlock()
defer func() {
sessionRunner.releaseResources()
}()
startTime := time.Now()
for _, step := range testcase.TestSteps {
stepResult, err := step.Run(sessionRunner)
} else {
b.RecordSuccess(string(step.Type()), stepResult.Name, stepResult.Elapsed, stepResult.ContentSize)
for k, v := range stepResult.ExportVars {
sessionRunner.sessionVariables[k] = v
}
}
}
endTime := time.Now()